2009-07-03 7 views
1

J'utilise json.net pour analyser des objets et les livrer à un service web que j'ai créé. Les objets sont des objets LINQ. Lorsque j'accède à ce webservice avec JQuery, il n'analyse pas correctement le JSON. Il semble y avoir quelque chose de mal avec la mise en forme ..JSON.net renvoyant malformé JSON

Le JSON-string que je reçois est celui-ci:

[{"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":[] 
    } 
    ] 
}] 

Quelqu'un a une idée de pourquoi cela ne fonctionne pas?

Répondre

2

Le problème réel ici était que ce JSON était incorporé dans une balise XML. J'ai résolu le problème en analysant la chaîne JSON en utilisant cet analyseur syntaxique: http://www.json.org/js.html

De ce fait, ce n'est pas idéal, car JQuery devrait le faire pour moi, mais jusqu'à ce que je trouve un moyen pour que les services web .NET retournent le brut. Chaîne JSON, non intégrée dans une balise XML, cette solution fonctionne =)

0

Je suppose qu'il s'agit d'un problème d'encodage, que se passe-t-il si vous enlevez cela de votre dossier?

"resourcename":"Rødblyant 1" 
0

Assurez-vous de travailler avec l'UTF-8 des deux côtés. Je suppose que soit vous encoder la chaîne en utilisant l'encodage par défaut (comme windows1252), ou la fin de réception est en train de faire quelque chose de similaire. N'oubliez pas que JSON doit être en UTF-8, UTF-16 (LE ou BE) ou UTF-32 (LE ou BE).

Pour tester cela, débarrassez-vous de tous les caractères å et ø et voyez si cela fonctionne. Si c'est le cas, il est définitivement codé d'un côté ou de l'autre.

Questions connexes