2011-10-23 4 views
2

Salut les gars c'est la source JASON:Parsing Nested JSON en C#

{ 
"is_error":0, 
"undefined_fields":["custom"], 
"version":3, 
"count":1, 
"id":15862, 
"values":{ 
    "15862":{ 
     "id":15862, 
     "contact_type":"Individual", 
     "contact_sub_type":null, 
     "do_not_email":null, 
     "do_not_phone":null, 
     "do_not_mail":null, 
     "do_not_sms":null, 
     "do_not_trade":null, 
     "is_opt_out":null, 
     "legal_identifier":null, 
     "external_identifier":null, 
     "sort_name":"last, first", 
     "display_name":"first last", 
     "nick_name":null, 
     "legal_name":null, 
     "image_URL":null, 
     "preferred_communication_method":null, 
     "preferred_language":"en_US", 
     "preferred_mail_format":null, 
     "hash":"2b", 
     "api_key":"eb", 
     "first_name":"Frist", 
     "middle_name":"A.", 
     "last_name":"Last", 
     "prefix_id":null, 
     "suffix_id":null, 
     "email_greeting_id":null, 
     "email_greeting_custom":null, 
     "email_greeting_display":null, 
     "postal_greeting_id":null, 
     "postal_greeting_custom":null, 
     "postal_greeting_display":null, 
     "addressee_id":null, 
     "addressee_custom":null, 
     "addressee_display":null, 
     "job_title":"Title", 
     "gender_id":null, 
     "birth_date":null, 
     "is_deceased":null, 
     "deceased_date":null, 
     "household_name":null, 
     "primary_contact_id":null, 
     "organization_name":"OrgName", 
     "sic_code":null, 
     "user_unique_id":null 
    } 
} 

}

J'ai deux problèmes. Comme vous pouvez le voir la clé numérique sous "valeurs" est définie chaque fois qu'une réponse est retournée, deuxièmement, je ne peux pas sembler avoir accès à quoi que ce soit à l'intérieur de la clé "valeurs".

J'attemped à utiliser JSON.Net mais je suis obtenir:

Impossible de jeter l'objet de type 'Newtonsoft.Json.Linq.JObject' taper 'Newtonsoft.Json.Linq.JArray'.

Lorsque vous utilisez:

JObject o = JObject.Parse(json); 
JArray values = (JArray)o["values"]; 

pour obtenir les données les plus intimes (ce qui est tout ce que je me soucie de), mais tout ce que je tente pour dépasser le niveau de la racine de la réponse ne fonctionne pas .. . As tu des idées?

Répondre

2

juste une idée, mais essayez var f = o ["values"] et voir ce que cela renvoie. Il est possible que JArray ne soit pas ce que nous supposons.

Essayez à la place d'utiliser JavaScriptSerializer.

+0

Oui, "values" n'est pas un tableau, c'est une autre propriété. Si c'était un tableau ce serait: values: [/ * stuff here * /]; – Jonas

+0

Merci pour les réponses, j'ai essayé JavaScriptSerializer et je suis en train de rencontrer un petit problème. Voici ce que je rencontre: http://stackoverflow.com/questions/7870307/runtime-binder-exception-was-unhandled-c-sharp-json-deserialization-attempt-ne – Derek