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": "女性"
}
}
}
]
}

求反序列化应 如何设计实体类,自己搞了好长时间也没有搞出来啊,求帮忙,在线等啊。
...全文
141 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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();
        }
    }




[第一例 留言板][第二例 gRPC使用例子][第三例 基于go-micro做服务注册和服务发现][第四例 聊天室][第五例 工具库][第六例 原生sql操作][第七例 sqlx操作][第八例 Redis数据库(gomodule/redigo)][第九例 Redis消息队列][第十例 Redis集群连接][十一例 Zookeeper操作][十二例 Kafka操作][十三例 NSQ操作][十四例 二分查找][十五例 交换排序 - 冒泡排序][十六例 插入排序 - 直接插入排序][十七例 插入排序 - 希尔排序][十八例 交换排序 - 快速排序][十九例 算法求解应用][二十例 pprof性能分析][二一例 CPU信息采集][二二例 Heap信息采集][二三例 Http信息采集][二四例 单元测试(功能测试)][二五例 基准测试(压力测试/性能测试)][二六例 gdb调试][二七例 json序列化和反序列化][二八例 protobuf序列化和反序列化][二九例 包管理工具 go vendor][三十例 包管理工具 go mod][三一例 zip压缩][三二例 交叉编译][三三例 线上环境部署][三四例 实现固定周期维护][三五例 聊天室(精简版)][三六例 并发安全字典][三七例 导出Excel表格][三八例 导出CSV表格][三九例 聊天室(高并发)][四十例 JWT (Json Web Token)][四一例 雪花算法生成 Id][四二例 对称加密 AES][四三例 非对称加密 RSA][四四例 签名算法 SHA1][四五例 数据库操作 gorm][四六例 数据库操作 gorm 集合][四七例 RSA(MD5WithRSA 算法)签名和验签方式][四八例 线上部署脚本][四九例 Elasticsearch][五十例 对象池]

111,096

社区成员

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

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

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