日期:2014-05-17  浏览次数:20361 次

请帮忙看看这JSON怎么解析?
代码如下:

string sample = "{putinBillNo:\"MRK13070001\", Details1:[\"putin_line_id:00001\",\"pick_date:2013-09-11\", \"pick_place:广运码头\"],Details2:[\"putin_line_id:00001\",\"pick_date:2013-09-11\"]}";     
 JObject jo=(JObject)JsonConvert.DeserializeObject(sample );

获取putinBillNo,和其下的两个子项数据Details1和Details2的详细值:pick_date、pick_date

而且details的个数不一定的时,怎么确定json串中details的个数?


------解决方案--------------------
你的JObject里都定义好就可以了
属性 putinBillNo
属性 Details(集合)

Detail作为另外一个类存在,包含 putin_line_id..and so on
------解决方案--------------------
不知道你的 sample 是如何生成的,下面的代码需要在 putinBillNo 和 Details1、Details2 前后都加双引号才可以用: 
string sample = "{\"putinBillNo\":\"MRK13070001\", \"Details1\":[\"putin_line_id:00001\",\"pick_date:2013-09-11\", \"pick_place:广运码头\"],\"Details2\":[\"putin_line_id:00001\",\"pick_date:2013-09-11\"]}";
JObject jo = FromJson<JObject>(sample);

public class JObject
{
    public string putinBillNo;
    public string[] Details1, Details2;
}
public static T FromJson<T>(string json)
{
    MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
    DataContractJsonSerializer j = new DataContractJsonSerializer(typeof(T));
    return (T)j.ReadObject(ms);
}