当前位置:首页 > 教程 > 如何将C#/.NET 将json字符串格式数据转换成对象

如何将C#/.NET 将json字符串格式数据转换成对象

网络中数据的传输方式通常是json格式,对于.NET程序json数据很不方便,因此我们需要将json格式数组转换成对象,有的是字符串属性简单对象,有的需要将json格式字符串转换为对象中还有对象的对象,有的却是要将json格式字符串转换为List对象。下面讲解对json数据转换成对象的操作。

json中包含的是只有字符串的简单对象

比如:

1
{"result":"0","res_info":"ok","queryorder_info":"info"}

首先构造对象,如下面的代码

1
2
3
4
5
6
public struct JsonClass
{
	public string result { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。
	public string res_info { get; set; }
	public string queryorder_info { get; set; }   
}

将json字符串转换为JsonClass对象,将json字符放在json1.txt文本中

1
2
3
4
5
6
7
8
9
public static void JsonMy()
{
	string json = Jsonstr("D:\\temp\\json1.txt");//Jsonstr函数读取json数据的文本txt                             
	JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
	JsonClass list = js.Deserialize<JsonClass>(json);    //将json数据转化为对象类型并赋值给list
	string result = list.result;                         
	string res_info = list.res_info;
	string queryorder_info = list.res_info;
}

对于注意JavaScriptSerializer对象要引用System.Web.Extensions

json字符串中的对象还包含对象

json格式字符串示例如下:

1
{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":"ok"}}

构造对象

1
2
3
4
5
6
7
8
9
10
11
12
public struct JsonClass2
{
	public string result { get; set; }  
	public string res_info { get; set; }
	public queryorder_info queryorder_info;
}
 
public struct queryorder_info
{
	public string order_num { get; set; }
	public string orderdetail { get; set; }
};

转换对象,将json字符放在json2.txt文本中

1
2
3
4
5
6
7
8
9
10
public static void JsonMy2()
{
	string json = Jsonstr("D:\\temp\\json2.txt");
	JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
	JsonClass2 list = js.Deserialize<JsonClass2>(json);    //将json数据转化为对象类型并赋值给list
	string result = list.result;    
	string res_info = list.res_info;
	string order_num = list.queryorder_info.order_num;
	string orderdetail = list.queryorder_info.orderdetail;
}

json数据中还包含数组对象集合

示例json字符串

1
2
3
4
{"result":"0","res_info":"ok","queryorder_info":
{"order_num":"5","orderdetail":[
{"Description":"769839263","CancelDeadline":"2013-09-12 23:00:00","CheckInDate":"2013-09-12 00:00:00","CheckOutDate":"2013-09-13 00:00:00","CityID":"0101","CurrencyCode":"RMB","HotelID":"00301105","Name":"有间客栈","ID":"1000000005201308280002999652","PayAmt":"228","PayType":"0","RommsCnt":"1","SPTransID":"65202157","Address":"4"},
{"Description":"248486133","CancelDeadline":"2013-10-13 23:00:00","CheckInDate":"2013-10-13 00:00:00","CheckOutDate":"2013-10-18 00:00:00","CityID":"0201","CurrencyCode":"RMB","HotelID":"10201314","Name":"七天酒店","ID":"1000000005201308280002999413","PayAmt":"1140","PayType":"0","RommsCnt":"1","SPTransID":"65197226","Address":"4"}]}}

构造对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public struct JsonClass3
{
	public string result { get; set; } 
	public string res_info { get; set; }
	public queryorder_info queryorder_info;
}
public struct queryorder_info
{
	public string order_num { get; set; }
	public List<orderdetail> orderdetail;//数组处理       
};
public struct orderdetail
{
	public string Description { get; set; }
	public string CancelDeadline { get; set; }
	public string CheckInDate { get; set; }
	public string CheckOutDate { get; set; }
	public string CityID { get; set; }
	public string CurrencyCode { get; set; }
	public string HotelID { get; set; }
	public string Name { get; set; }
	public string ID { get; set; }
	public string PayAmt { get; set; }
	public string PayType { get; set; }
	public string RommsCnt { get; set; }
	public string SPTransID { get; set; }
	public string Address { get; set; }
};

转换对象,,将json字符放在json3.txt文本中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void JsonMy3()
{
	string json = Jsonstr("D:\\temp\\json3.txt");
	JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
	JsonClass3 list = js.Deserialize<JsonClass3>(json);    //将json数据转化为对象类型并赋值给list
	string result = list.result;     
	string res_info = list.res_info;
	string order_num = list.queryorder_info.order_num;
	List<orderdetail> orderdetail = list.queryorder_info.orderdetail;
	string Description = orderdetail[0].Description;
	string Name = orderdetail[0].Name;
	string ID = orderdetail[1].ID;
	string Address = orderdetail[2].Address;
}

以上就是关于json字符串转对象的全部,希望可以帮助你。

  • << 怎样打造个人成功博客教程二:网站运营...
  • 为什么你的网站排名一夜间暴跌:你中招... >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/donet-json-to-object/

    相关文章 近期热评 最新文章

    • 怎样在WordPress中安装Google Analytics
      就算你积累了多年网站建设的经验,你都不可能一开始就建一个外观,速度,功能以及转化都很完美的网站。你能做的并且也是各个站长正在做的,无非是通过不断的监测来改进...
    • 怎样在WordPress中安装Google Analytics
      就算你积累了多年网站建设的经验,你都不可能一开始就建一个外观,速度,功能以及转化都很完美的网站。你能做的并且也是各个站长正在做的,无非是通过不断的监测来改进...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程