Pregunta

estoy usando json.net analizar objetos y entregarlos a un servicio web que he creado.Los objetos son objetos LINQ.Cuando accedo a este servicio web con JQuery, no analiza el JSON correctamente.Parece que hay algún problema con el formato.

La cadena JSON que obtengo es esta:

[{"typeid":1,
  "typename":"binders",
  "description":"test",
  "RESOURCEs":
    [{"resourceid":4,
      "resourcename":"Binders 1",
      "description":"Pakke med hele fire binders!!!",
      "typeid":1,
      "RESERVATIONLINEs":[]
     },    
     {"resourceid":10,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":1,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":2,
  "typename":"blyant",
  "description":"også dyrt",
  "RESOURCEs":
    [{"resourceid":5,
      "resourcename":"Gråblyant 1",
      "description":"Fin og grå",
      "typeid":2,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":6,
      "resourcename":"Rødblyant 1",
      "description":"Må spisses ofte",
      "typeid":2,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":4,
  "typename":"Penn",
  "description":"tester",
  "RESOURCEs":
    [{"resourceid":7,
      "resourcename":"Penn 1",
      "description":"Blå og fin",
      "typeid":4,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":11,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":4,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":5,
  "typename":"Kajakk",
  "description":"Dette er en type båt",
  "RESOURCEs":
    [{"resourceid":1,
      "resourcename":"Havkajakk 1",
      "description":"FOr havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":2,
      "resourcename":"Havkajakk 2",
      "description":"For havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":6,
  "typename":"3G-modem",
  "description":"Fra NetCom",
  "RESOURCEs":
    [{"resourceid":3,
      "resourcename":"3G-modem 1",
      "description":"Gammelt og ustabilg",
      "typeid":6,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":12,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":6,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":7,
  "typename":"Minnepinne",
  "description":"på 1 KB",
  "RESOURCEs":
    [{"resourceid":8,
      "resourcename":"Minnepinne 1",
      "description":"1 KB (!)",
      "typeid":7,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":9,
      "resourcename":"Minnepinne 2",
      "description":"20 PB",
      "typeid":7,
      "RESERVATIONLINEs":[]
     }
    ]
 }]

¿Alguien tiene idea de por qué esto no funciona?

¿Fue útil?

Solución

El problema real aquí es que este JSON se ha incrustado en una etiqueta XML. He resuelto el problema mediante el análisis del JSON-cadena utilizando este analizador: http://www.json.org /js.html

Por cource esto no es ideal, como jQuery debe hacer esto por mí, pero hasta que encuentre una manera para NET-webservices para devolver la prima JSON-cadena, que no esté integrado en una etiqueta XML, esta solución funciona =)

Otros consejos

supongo que esto es un problema de codificación, lo que si se quita esto desde su registro?

"resourcename":"Rødblyant 1"

Asegúrese de estar trabajando con UTF-8 en ambos lados.Supongo que o estás codificando la cadena usando la codificación predeterminada (como windows1252), o el extremo receptor está haciendo algo similar.

Recuerda que JSON debe estar en UTF-8, UTF-16 (LE o BE), o UTF-32 (LE o BE).

Para probar esto, deshazte de todos los å y ø personajes y ver si funciona.Si es así, definitivamente está codificando de un lado o del otro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top