C# - JSON详解
来源:互联网 发布:2017淘宝网红店排名 编辑:程序博客网 时间:2024/06/09 16:33
先要引用json.net命名空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
然后利用JSON.NET的JsonConvert方法把对象序列化为json字符串
实体类转为json字符串
List<Corder> corderlists = new List<Corder>();
Corder corder = new Corder { strCode = "aa", strCustid = "bb", strSaleman = "cc", dtDate = '2015-9-1', decAmt =200};
corderlists.Add(corder);
Corder corder = new Corder { strCode = "aaa", strCustid = "bbb", strSaleman = "ccc", dtDate = '2015-9-1', decAmt =3000};
string strJson = JsonConvert.SerializeObject(corderlists);
使用LINQ to JSON定制JSON数据
使用JsonConvert对象的SerializeObject只是简单地将一个list或集合转换为json字符串。但是,有的时候我们的前端 框架比如ExtJs对服务端返回的数据格式是有一定要求的,比如下面的数据格式,这时就需要用到JSON.NET的LINQ to JSON,LINQ to JSON的作用就是根据需要的格式来定制json数据。
比如经常用在分页的json格式如代码:
{ "total": 5, //记录总数 "rows":[ //json格式的数据列表 ]}
JObject jobjectJson = new JObject(new JProperty("total", corderlists.Count),
new JProperty("row", new JArray(
from p in corderlists select new JObject(
new JProperty("strCode", p.strCode),
new JProperty("strCustid", p.strCustid),
new JProperty("strSaleman",p.strSaleman),
new JProperty("dtDate",p.dtDate),
new JProperty("decAmt",p.decAmt)
))
));
客户端提交过来的数据一般都是json字符串,有了更好地进行操作(面向对象的方式),所以我们一般都会想办法将json字符串转换为json对象。例如客户端提交了以下数组格式json字符串
string str_corderjson = @"[{ strCode : 'aaaa', strCustid :'bbbb', strSaleman : 'cccc', decAmt : 3000,dtDate :'2015-9-1' }]";
//Object或JArray的Parse方法轻松地将json字符串转换为json对象.
JArray jobjectcorder = JArray.Parse(str_corderjson);
foreach (JObject aa in jobjectcorder)
{
Console.WriteLine("单号:{0},客户编码{1},金额{2},日期{3}", aa["strCode"], aa["strCustid"], aa["decAmt"], aa["dtDate"]);
}
也可以使用JsonConvert的DeserializeObject方法
如果转为实体类,一般用JsonConvert的DeserializeObject方法
string str_corderjson = @"{ strCode : 'aaaa', strCustid :'bbbb', strSaleman : 'cccc', decAmt : 3000,dtDate :'2015-9-1' }";
Corder corderobject = JsonConvert.DeserializeObject<Corder>(str_corderjson);
Console.WriteLine("单号:{0},客户编码{1},金额{2},日期{3}", corderobject.strCode, corderobject.strCustid, corderobject.decAmt.ToString(), corderobject.dtDate.ToString());
总结
在客户端,读写json对象可以使用”.”操作符或”["key”]”,json字符串转换为json对象使用eval()函数。在服务端,由.net对象转换json字符串优先使用JsonConvert对象的SerializeObject方法,定制输出json字符串使用LINQ to JSON。由json字符串转换为.net对象优先使用JsonConvert对象的DeserializeObject方法,然后也可以使用LINQ to JSON
- C# - JSON详解
- C# - JSON详解
- C# XML与Json之间相互转换实例详解
- C# XML与Json之间相互转换实例详解
- C# Json
- C# Json
- C# JSON
- c# json
- C# JSON
- JSON 详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json 详解
- json详解
- JSON详解
- Bootstrap学习:警告
- ios中关于delegate(委托)的使用心得
- metasploit 连接postgresql可能遇见的问题
- java中的数学计算函数
- 简单的通知
- C# - JSON详解
- CvMat、Mat、IplImage之间的转换详解
- MongoDB 搭建简易图片服务器
- 【leetcode每日一题】148.sort List
- Bootstrap学习:进度条
- IOS--文件管理NSFileManager
- python string包——简易函数使用
- Bootstrap学习:多媒体对象
- iOS中的沙盒机制