多重JSON解析,求答案.

qq_20294711 2014-09-01 05:19:53
JSON格式如下:
{
"error_code": 0,
"reason": "Success",
"result": [
{
"province_code": "AH",
"province": "安徽",
"citys": [
{
"city_name": "安庆",
"city_code": "AH_AnQing",
"abbr": "皖",
"engine": 0,
"engineno": 0,
"classa": 1,
"classno": 6,
"regist": 0,
"registno": 0
},
{
"city_name": "蚌埠",
"city_code": "AH_BangBu",
"abbr": "皖",
"engine": 0,
"engineno": 0,
"classa": 1,
"classno": 6,
"regist": 0,
"registno": 0
}
]
},
{
"province_code": "BJ",
"province": "北京",
"citys": [
{
"city_name": "北京",
"city_code": "BJ",
"abbr": "京",
"engine": 1,
"engineno": 0,
"classa": 0,
"classno": 0,
"regist": 0,
"registno": 0
}
]
}
]
}

求解析方法.........最好用"DataContractJsonSerializer"或其它....
...全文
178 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20294711 2014-09-01
  • 打赏
  • 举报
回复
已解决,原因是DataContractJsonSerializer 对多重JSON支持性差.用Newtonsoft.Json OK 附一点代码. static void Main(string[] args) { string jsonBook = getJson(); vHearder bk1 = JsonConvert.DeserializeObject<vHearder>(jsonBook); Console.WriteLine(bk1.ToString()); } private static string getJson() { try { string filepath = @"F:\Province.txt"; System.IO.FileInfo fi = new System.IO.FileInfo(filepath); System.IO.StreamReader sr = fi.OpenText(); return sr.ReadToEnd(); } catch (Exception localIOException) { } return ""; } } public class vHearder { public string error_code { get; set; } public string reason { get; set; } public ProvinceList[] result { get; set; } } public class ProvinceList { public string province_code { get; set; } public string province { get; set; } public ProvinceCitys[] citys { get; set; } } public class ProvinceCitys { public string city_name { get; set; } public string city_code{ get; set; } public string abbr{ get; set; } public int engine{ get; set; } public int engineno{ get; set; } public int classa{ get; set; } public int classno{ get; set; } public int regist{ get; set; } public int registno{ get; set; } }
wind_cloud2011 2014-09-01
  • 打赏
  • 举报
回复
string s = ""; StreamReader sr = new StreamReader("3.json"); s = sr.ReadToEnd(); sr.Close(); JObject jo = (JObject)JsonConvert.DeserializeObject(s); JToken torrentsArray = (JToken)jo["result"]; foreach (JToken result in torrentsArray) { MessageBox.Show(result["province_code"].ToString()); JArray jar = JArray.Parse(result["citys"].ToString()); for (var i = 0; i < jar.Count; i++) { JObject j = JObject.Parse(jar[i].ToString()); MessageBox.Show(j["city_name"].ToString()); MessageBox.Show(j["city_code"].ToString()); } }
qq_20294711 2014-09-01
  • 打赏
  • 举报
回复
求帮助谢谢!!111
qq_20294711 2014-09-01
  • 打赏
  • 举报
回复
这个只建立了数据模型,其它呢
WM_JAWIN 2014-09-01
  • 打赏
  • 举报
回复

class city{
 {
                     [DataMember]
public string city_name;// "安庆",
                     [DataMember]
public string city_code;// "AH_AnQing",
                     [DataMember]
public string abbr;// "皖",
                     [DataMember]
public string engine;// 0,
                     [DataMember]
public string engineno;// 0,
                     [DataMember]
public string classa;// 1,
                     [DataMember]
public string classno;// 6,
                     [DataMember]
public string regist;// 0,
                     [DataMember]
public string registno;// 0
                 }
class province{
[DataMember]
public string province_code;// "AH",
             [DataMember]
public string province;// "安徽",
             [DataMember]
public city[] citys;//[]
}

class result{
 [DataMember]
public string error_code;// 0,
     [DataMember]
public string reason;// "Success",
     [DataMember]
public province result;// [
}
qq_20294711 2014-09-01
  • 打赏
  • 举报
回复
分不够我继续加,最高给300分.

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧