Pergunta

Eu estou usando json.net para objetos de análise e entregá-los a um webservice que eu fiz. Os objetos são LINQ-objetos. Quando eu acessar esta webservice com JQuery, não analisar o JSON corretamente. Parece haver algo de errado com a formatação ..

O JSON-string que eu vejo é 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":[]
     }
    ]
 }]

Alguém tem uma idéia por que isso não está funcionando?

Foi útil?

Solução

O problema real aqui foi que este JSON foi incorporado em um XML-tag. Eu resolvi o problema ao analisar o JSON-string usando este analisador: http://www.json.org /js.html

De cource este não é o ideal, como JQuery deve fazer isso por mim, mas até que eu encontrar uma maneira para .net-webservices para retornar o JSON-corda crua, não incorporado num XML-tag, esta solução funciona =)

Outras dicas

Eu acho que este é um problema de codificação, o que se você remover esta de seu registro?

"resourcename":"Rødblyant 1"

Certifique-se de que você está trabalhando com UTF-8 em ambos os lados. Meu palpite é que ou você está codificando a string usando a codificação padrão (como Windows1252), ou o fim de recepção está fazendo algo similar.

Recorde que JSON deve ser em UTF-8, UTF-16 (LE ou BE), ou UTF-32 (LE ou BE).

Para testar isso, se livrar de todos os personagens å e ø e ver se funciona. Se assim for, é definitivamente codificação de um lado ou do outro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top