这样就可以正常输出内容了。
我想肯定有人会问,如果有多层关系的json字符串该如何处理呢?没关系,一样的处理。
比如如何解析这个json字符串:[{'phantom':true,'id':'20130717001','data':{'MID':1019,'Name':'aaccccc','Des':'cc','Disable':'启用','Remark':'cccc'}}] ?
首先还是定义实体类:
public class Info
{
public string phantom { get; set; }
public string id { get; set; }
public data data { get; set; }
}
public class data
{
public int MID { get; set; }
public string Name { get; set; }
public string Des { get; set; }
public string Disable { get; set; }
public string Remark { get; set; }
}
然后在main方法里面,键入:
string json = @"[{'phantom':true,'id':'20130717001','data':{'MID':1019,'Name':'aaccccc','Des':'cc','Disable':'启用','Remark':'cccc'}}]";
List<Info> infoList = JsonConvertDeserializeObject<List<Info>>(json);
foreach (Info info in infoList)
{
ConsoleWriteLine("id:" + infodataMID);
}
按照我们的预期,应该能够得到1019的结果。
截图为证:

再附一个JSON解析的例子,来自于兔子家族—二哥在本篇博客下的回复。
JSON字符串1:{success:true,data:{id:100001,code:"JTL-Z38005",name:"奥迪三轮毂",location:"A-202",qty:100,bins:[{code:"JTL-Z38001",name:"奥迪三轮毂",location:"A-001",qty:100},{ code:"JTL-Z38002",name:"奥迪三轮毂",location:"A-002",qty:100}]}}
定义数据结构:
public class Data
{
public Boolean success { get; set; }
public Data1 data { get; set; }
}
public class Data1
{
public Int32 id { get; set; }
public string code { get; set; }
public string name { get; set; }
public string location { get; set; }
public Int32 qty { get; set; }
public List<Data2> bins { get; set; }
}
public class Data2
{
public string code { get; set; }
public string name { get; set; }
public string location { get; set; }
public Int32 qty { get; set; }
}
Main函数:
class Program
{
static void Main(string[] args)
{
string json = "{success:true,data:{id:100001,code:"JTL-Z38005",name:"奥迪三轮毂",location:"A-202",qty:100,bins:[{code:"JTL-Z38001",name:"奥迪三轮毂",location:"A-001",qty:100},{ code:"JTL-Z38002",name:"奥迪三轮毂",location:"A-002",qty:100}]}}";
Data data = JsonConvertDeserializeObject<Data>(json);
foreach (var item in datadatabins)
{
//输出:JTL-Z38001、JTL-Z38002,其它类似
ConsoleWriteLine(itemcode);
}
}
}










