json 反序列化问题 求解啊

a464669508 2014-02-12 11:30:51
{
"QUES_JSON": [
{
"chapter": true,
"code": "一",
"name": "一般情况",
"type": "part",
"values": { }
},
{
"chapter": false,
"code": "1.1",
"name": "性别",
"type": "radio",
"valueDict": [
{
"code": "1",
"name": "男性",
"type": "",
"valueDict": [ ]
},
{
"code": "2",
"name": "女性",
"type": "",
"valueDict": [ ]
}
],
"values": {
"2": {
"appends": { },
"code": "2",
"value": "女性"
}
}
}
]
}

求反序列化应 如何设计实体类,自己搞了好长时间也没有搞出来啊,求帮忙,在线等啊。
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ffff08ado 2014-02-12
  • 打赏
  • 举报
回复
用DataContractJsonSerializer试试
a464669508 2014-02-12
  • 打赏
  • 举报
回复
public class tempHTML
	{
		[DataMember(Order = 1, Name = "QUES_JSON")]
		public Ques_JSON QUES_JSON { get; set; }

		[DataContract]
		public class Ques_JSON
		{
			[DataMember(Order = 1, Name = "Value")]
			public List<ValueChild> ValueChild { get; set; }
			
		}
		[DataContract]
		public class ValueChild
		{
			[DataMember(Order = 1, Name = "chapter")]
			public bool chapter { get; set; }
			
			[DataMember(Order = 2, Name = "code")]
			public string code { get; set; }

			[DataMember(Order = 3, Name = "name")]
			public int name { get; set; }

			[DataMember(Order = 4, Name = "type")]
			public int type { get; set; }

			[DataMember(Order = 5, Name = "valueDict")]
			public List<ValueDict> valueDict { get; set; }

			[DataMember(Order = 6, Name = "values")]
			public Values values { get; set; }
		}

		[DataContract]
		public class ValueDict
		{			
			[DataMember(Order = 1, Name = "ValueDictChild")]
			public List<ValueDictChild>  valueDictChild { get; set; }			
		}

		[DataContract]
		public class ValueDictChild
		{
			[DataMember(Order = 1, Name = "code")]
			public int code { get; set; }

			[DataMember(Order = 2, Name = "name")]
			public string name { get; set; }

			[DataMember(Order = 3, Name = "type")]
			public string type { get; set; }

			[DataMember(Order = 4, Name = "ValueDict")]
			public ValueDict valueDict { get; set; }
		}

		[DataContract]
		public class Values
		{
			[DataMember(Order = 1, Name = "Num")]
			public Dictionary<string, Num> values { get; set; }
			//public Num num { get; set; }
		}

		[DataContract]
		public class Num
		{
			[DataMember(Order = 1, Name = "appends")]
			public string appends { get; set; }
			[DataMember(Order = 2, Name = "code")]
			public string code { get; set; }
			[DataMember(Order = 3, Name = "value")]
			public string value { get; set; }
		}

		
	}
如果用这种方式 该如何定义实体类啊
a464669508 2014-02-12
  • 打赏
  • 举报
回复
引用 1 楼 ffff08ado 的回复:
用DataContractJsonSerializer试试
该如何 定义实体类啊 能帮忙写下不,尤其是这种复杂点的,还有字典的 我就不会了 谢谢了
wind_cloud2011 2014-02-12
  • 打赏
  • 举报
回复

  JToken[] valueDict1;
    private void button21_Click(object sender, EventArgs e)
    {
        string json = "{\"QUES_JSON\":[{\"chapter\": true,\"code\":\"一\",\"name\":\"一般情况\", \"type\": \"part\",\"values\":{ }},{\"chapter\": false, \"code\": \"1.1\",\"name\": \"性别\",\"type\": \"radio\",\"valueDict\":[{\"code\":\"1\",\"name\":\"男性\",\"type\":\"\",\"valueDict\": [ ]},{\"code\":\"2\",\"name\":\"女性\",\"type\":\"\",\"valueDict\":[ ]}],\"values\":{\"2\":{\"appends\": { },\"code\": \"2\",\"value\": \"女性\"}}}]}";
        JObject jo = (JObject)JsonConvert.DeserializeObject(json);
        JToken[] items = jo["QUES_JSON"].ToArray();      
        foreach (JToken it in items)
        {
            string chapter = it["chapter"].ToString();
            string code = it["code"].ToString();
            string name = it["name"].ToString();
            string type = it["type"].ToString();
            string values = it["values"].ToString();
            string chapter1 = items[1]["chapter"].ToString();
            string code1 = items[1]["code"].ToString();
            string name1 = items[1]["name"].ToString();
            string type1 = items[1]["type"].ToString();       

        }
        valueDict1 = items[1]["valueDict"].ToArray();
        foreach (JToken v in valueDict1)
        {

            string code2 = v["code"].ToString();
            string name2 = v["name"].ToString();
            string type2 = v["type"].ToString();
            string valueDict2 = v["valueDict"].ToString();
        }
    }




110,571

社区成员

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

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

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