var jsData = {
    id:         'E1',
    firstname:  'Peter',
    lastname:   'Funny',
    project: { id: 'P1' },
    activities: [
        { id: 'A1' },
        { id: 'A2' }
    ]};

var jsonData = JSON.stringify(jsData);


$('#click').click(function(){

    $.ajax({
        url: "test/",
        type: "POST",
        data: jsData,
        dataType: "json",
        success: function (data){
        console.log(data);
        },
        error:function(){$('#text').html('FATAL_ERROR')}

    })
})

Este es el JS-Código y jsData se debe enviar al Servidor(en Python).
En el Servidor puedo obtener algo como {‘{id:’E1′,nombre:’Pedro’,apellido:’Divertido’,proyecto: { id: ‘P1’ },actividades de: [{ id: ‘A1’ },{ id: ‘A2′ }]};’:»}

Hay una forma inteligente de obtener la cadena interna, dict’ de la ‘exterior dict’ ?!

  • No sé cuál es el marco que va a utilizar en el lado del servidor, pero usted debería ser capaz de acceder a algo como request.body y obtener los datos. Por el camino – cuando se utiliza dataType es el tipo que usted está esperando de nuevo desde el servidor. Usted debe utilizar contentType:"application/json" para notificar al servidor sobre el tipo de los datos en su solicitud.
InformationsquelleAutor ShuftY | 2013-04-28

2 Comentarios

  1. 6

    Python tiene un built-in JSON biblioteca de análisis. La adición de import json básicos de JSON funcionalidad de análisis, que puede ser utilizado de la siguiente manera:

    import json
    personString = "{'{id:'E1',firstname:'Peter',... " # This would contain your JSON string
    person = json.loads( personString ) # This will parse the string into a native Python dictionary, be sure to add some error handling should a parsing error occur
    
    person['firstname'] # Yields 'Peter'
    person['activities'] # Yields a list with the activities.

    Más información aquí:
    http://docs.python.org/2/library/json.html

    • json.las cargas de tiro «, Esperando nombre de la propiedad entre comillas» ya que personString no es válido json porque de single quotes.
    • El JSON en el ejemplo no analizar en todo, como los puntos suspensivos he añadido la hace inválida JSON. Esto es claramente un ejemplo de cadena.
  2. 0

    Porque está utilizando una variable incorrecta!

    var jsonData = JSON.stringify(jsData);
    ..
    $.ajax({
          ..,
          contentType: "application/json", //Remember to set this.
          data: jsData,
                ^^^^^^ => Shouldn't you be passing "jsonData" here?

    Cuando se pasa de un simple javascript diccionario, jQuery codifica las claves y valores del percentil-formato de codificación. Esa es la razón por la que usted está viendo el interior de la dict como cadena.

    Lo que tienes que hacer idealmente (OMI), es pasar la cadena JSON en lugar de parcialmente percentil cadena codificada.

    Tenga en cuenta que usted probablemente tendrá que cambiar la forma en que el servidor es la lectura de los datos. De esta manera no habría HTTP/POST los parámetros de solicitud. Sólo un simple cadena JSON en el HTTP entidad sección.

    • Derecho que es un error ich probado con ambas variables. y tanto que parece funcionar bien. contentType: «application/json» provoca que tengo un vacío dict en el Servidor

Dejar respuesta

Please enter your comment!
Please enter your name here