2009-09-22 10 views
4

J'ai trouvé différentes bibliothèques qui peuvent analyser des données Json, mais je n'ai trouvé aucune documentation sur la façon d'obtenir les données dans un tableau ou une liste C#.C# Comment récupérer des données Json dans un tableau

J'ai obtenu ces données JSON:

{ "001": { "Nom": "John", "Téléphone": [ "Mob - 98837374", "Mob - 98363627"]}, « 002 ": {" Nom ":" Tom "," Téléphone ": [" Mob - 49858857 "]}}

Quelqu'un a une idée? :)

Modifier:

détails utiles postés par OP sous forme de commentaires réaffiché modifier comme question par AnthonyWJones

Mon code à l'aide JSON.NET:

StringBuilder sb = new StringBuilder(); 
List<string> entities = (List<string>)JsonConvert.DeserializeObject(responseFromServer, typeof(List<string>)); 
foreach (string items in entities) { 
    sb.Append(items); 
} 

Mais J'ai toujours une erreur quand je débogue:

Avertissement 1 La référence au type 'System.DateTimeOffset' indique qu'il est défini dans 'c: \ Program >> Fichiers \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ mscorlib.dll', mais il pas >> trouver c: \ Div \ Json dot net \ Bin \ Newtonsoft.Json.dll »

+1

quelles bibliothèques avez-vous regardées? Pouvez-vous montrer votre tentative de conversion en tableau C#? –

+0

Vous devriez afficher la classe dans laquelle vous désérialisez. – jfar

Répondre

0

dans quel but vous goi ng pour l'utiliser ... Si vous l'utilisez côté client utilisez les mêmes données json car il serait énorme en performance, mais si vous en avez besoin côté serveur, alors cherchez une méthode alternative qui convertit json string en tableau liste ....

0

La structure JSON en l'état a quelques problèmes. Il semble utiliser des noms de propriété tels que "001" et "002" comme données. C'est bien en Javascript mais c'est vraiment difficile à gérer en C#. Une meilleure structure serait: -

[ {"ID": "001", "Name":"John", "Phone":["Mob - 98837374","Mob - 98363627"]}, 
    {"ID":"002", "Name":"Tom", "Phone":["Mob - 49858857"]} ] 

Puis JSON.NET comme d'autres ont souligné peut être utilisé plus efficacement.

+0

Mon code utilisant JSON.NET: StringBuilder sb = new StringBuilder(); Liste entities = (Liste ) JsonConvert.DeserializeObject (responseFromServer, typeof (liste )); foreach (éléments de chaîne dans les entités) { sb.Append (éléments); } Mais je reçois toujours une erreur quand je debug: « Avertissement Référence au type revendications 'System.DateTimeOffset' il est défini dans « c: \ Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v3. 5 \ WindowsCE \ mscorlib.dll ', mais il n'a pas pu être trouvé c: \ Div \ Json point net \ Bin \ Newtonsoft.Json.dll " – Ikky

0

Depuis que je développe pour un appareil mobile Windows, il semble que Json.net est trop grand. Je reçois une erreur en essayant de déboguer, et je vois que toute la mémoire de l'appareil est consommée.

De toute façon ... je pense que je vais juste analyser la chaîne JSON moi-même, car je sais ce que la chaîne va conclure.

Merci pour vos suggestions malgré tout.

Les gens sur le débordement de pile sont géniaux!

+1

Mieux vaut commenter la réponse plutôt que d'utiliser un point de réponse comme un forum de discussion . – jfar

Questions connexes