json.net灵活的实现.net对象和json之间进行转换,且性能比其他两种json序列化性能更高,使用方便简单。json.net使用的好处有如下几种:

  • 序列化和反序列化JSON(JsonConvert)    
string output = JsonConvert.SerializeObject(product)  //序列化
//反序列化
Product deserializedProduct = JsonConvert.DeserializeObject <Product>(output)

  • JsonSerializer的使用     

  JsonSerializer可以直接通过流的方式来操作JSON数据。将对象转化为JSON格式的字符串,然后存储到本地:

Product product = new Product();
product.ExpiryDate = new DateTime(2008, 12, 28);JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定转化日期的格式
serializer.NullValueHandling = NullValueHandling.Ignore;//忽略空值using (StreamWriter sw = new StreamWriter(@"d:\json.txt"))
using (JsonWriter writer = new JsonTextWriter(sw))
{serializer.Serialize(writer, product);// {"ExpiryDate":new Date(1230375600000),"Price":0}
}

  将本地文件中的Json格式数据,转化为JObject对象:

JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定转化日期的格式
serializer.NullValueHandling = NullValueHandling.Ignore;//忽略空值using (StreamReader sr = new StreamReader(@"d:\json.txt"))
using (JsonReader reader= new JsonTextReader(sr))
{JObject jo =(JObject) serializer.Deserialize(reader);
//    {
//  "Name": null,
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Price": 0.0,
//  "Sizes": null
//}
}

案例中的 serializer.NullValueHandling = NullValueHandling.Ignore 表示忽略空值,也就是为null值的属性不转化,需要注意Decimal的默认值不是null,而是0。

  • LINQ to JSON

     Linq to Json可以非常快速的从JObject对象中查询数据,以及创建JObject对象。

// create JObject
JObject o = JObject.Parse(@"{'CPU': 'Intel','Drives': ['DVD read/writer','500 gigabyte hard drive']}");// query JObjectstring cpu = (string)o["CPU"];
// Intelstring firstDrive = (string)o["Drives"][0];
// DVD read/writer

IList<string> allDrives = o["Drives"].Select(t => (string)t).ToList();
// DVD read/writer
// 500 gigabyte hard drive

  • json和XML之间互相转换
//JSON转换成XMLstring json = @"{'@Id': 1,'Email': 'james@example.com','Active': true,'CreatedDate': '2013-01-20T00:00:00Z','Roles': ['User','Admin'],'Team': {'@Id': 2,'Name': 'Software Developers','Description': 'Creators of fine software products and services.'}
}";XNode node = JsonConvert.DeserializeXNode(json, "Root");
//<Root Id="1">
//  <Email>james@example.com</Email>
//  <Active>true</Active>
//  <CreatedDate>2013-01-20T00:00:00Z</CreatedDate>
//  <Roles>User</Roles>
//  <Roles>Admin</Roles>
//  <Team Id="2">
//    <Name>Software Developers</Name>
//    <Description>Creators of fine software products and services.</Description>
//  </Team>
//</Root>

//XML转换成JSONstring xml = @"<?xml version='1.0' standalone='no'?><root><person id='1'><name>Alan</name><url>http://www.google.com</url></person><person id='2'><name>Louis</name><url>http://www.yahoo.com</url></person>
</root>";XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);string json = JsonConvert.SerializeXmlNode(doc);Console.WriteLine(json);
// {
//   "?xml": {
//     "@version": "1.0",
//     "@standalone": "no"
//   },
//   "root": {
//     "person": [
//       {
//         "@id": "1",
//         "name": "Alan",
//         "url": "http://www.google.com"
//       },
//       {
//         "@id": "2",
//         "name": "Louis",
//         "url": "http://www.yahoo.com"
//       }
//     ]
//   }
// }

转载于:https://www.cnblogs.com/LGDD/p/9362346.html

json.net使用说明一相关推荐

  1. 一文搞懂JSON.stringify和JSON.parse(五)JSON.parse使用说明

    一 JSON.parse特性 JSON.parse()就是将JSON字符串解析成字符串描述的JavaScript值或对象(将JSON数据解析为js原生值),例如: JSON.parse('{}'); ...

  2. python json.dumps参数_json.dumps参数之解

    通过help("json") 可以参考json库使用说明 编码后的json格式字符串紧凑输出,且无顺序,其dumps方法提供一些可选的参数,让输出的格式提高可读性. (1)sort ...

  3. 推荐一个好用的JSON编辑器

    推荐一个好用的JSON编辑器 使用说明: http://www.thomasfrank.se/json_editor.html 在线试用: http://www.thomasfrank.se/down ...

  4. excel 树结构json_excel转换json的强大工具

    让excel支持表达复杂的json格式,将xlsx文件转成json. 使用说明 目前只支持.xlsx格式,不支持.xls格式. 本项目是基于nodejs的,所以需要先安装nodejs环境. 执行命令 ...

  5. python组件化软件github_GitHub - 872409/wepy: 小程序组件化开发框架

    小程序框架wepy文档 扫码加入体验交流群. 快速入门 项目创建与使用 安装wepy 以下安装都通过npm安装 安装 wepy 命令行工具. npm install wepy-cli -g 在开发目录 ...

  6. 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...

  7. 微信小程序开发框架—wepy快速入门

     小程序框架wepy文档 Github地址 wepy官网:https://tencent.github.io/wepy/index.html 项目创建与使用 安装wepy 以下安装都通过npm安装 ...

  8. Jackson 框架使用说明,轻易转换JSON【转】

    Jackson 框架 使用说明 Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文: ...

  9. 关于JSON.parse()方法的使用说明

    JSON.parse() 方法用于将一个 JSON 字符串转换为对象. 语法 JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串. re ...

最新文章

  1. [转]Web测试中的界面测试用例设计
  2. 串口通信模块1:串口基础知识
  3. 微擎css使用php变量,$_Wamp;全局变量
  4. 【交换机】MAC-VLAN的功能作用是什么,如何设置
  5. 我们已经不用AOP做操作日志了! | 原力计划
  6. oracle sql 基础(六):数据控制语言(用户及权限管理)
  7. jdk1.8之lambda表达式
  8. linux 内存管理 ppt,Linux内存管理 Memory Manager.ppt
  9. 格力电器:回购股份比例超3% 已耗资95.15亿元
  10. ScrollView常用属性汇总
  11. java map 对象作为key_Java 将自定义的对象作为HashMap的key
  12. zynq开发系列2:GPIO连接MIO控制LED闪烁(SDK端代码编写详解)
  13. 屏幕录像软件Community Clips Recorder简介及其使用技巧
  14. 采用单/双缓冲区需要花费的时间
  15. 计算机网络超详细笔记(一):计网概述
  16. 下载安装最新kali虚拟机及切换中文方法
  17. 案例分享:陕西西安599条背街小巷改造提升,推行“多杆合一”
  18. Matlab--函数与子函数
  19. 如何利用eclipse创建一个java web项目?
  20. 若问杭州何处好,此中听得野莺啼——关于杭州

热门文章

  1. 从开源小白到 Apache Member,我的成长之路
  2. 大众点评开源监控CAT概览
  3. Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
  4. Python logging 模块
  5. 自然语言处理中的N-Gram模型
  6. 图像滤镜艺术---(Lightleaks Filter)漏光滤镜
  7. Linux_信号与信号量【转】
  8. 【Windows10nbsp;IoT开发系列】“Hello,World!”指导
  9. iOS开发UI篇—简单介绍静态单元格的使用
  10. SQL Server 索引和表体系结构(聚集索引)