在C#中解析嵌套的JSON

时间:2011-10-23 22:31:50

标签: c# json parsing

嗨,大家好,这是来源JASON:

{
"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
    }
}

}

我有两个问题。正如您所看到的,每次返回响应时都会定义“值”下的数字键,其次,我似乎无法访问“值”键内的任何内容。

我已尝试使用JSON.Net,但我得到了:

无法将“Newtonsoft.Json.Linq.JObject”类型的对象强制转换为“Newtonsoft.Json.Linq.JArray”。

使用时:

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

获取最里面的数据(这是我所关心的),但是我为了超越响应的根级而尝试的一切都不起作用......你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

只是一个想法,但尝试var f = o [“values”]并看看它会抛出什么。可能是JArray不是我们认为的那样。

请尝试使用JavaScriptSerializer