现在异构系统之间的数据交换多采用Json格式

.Net如何快捷地解析Json和将Object转换成json呢?

1.利用Newtonsoft解析Json字符串

在百度上查找资料,利用Newtonsoft解析Json多是把Json转换成某一特定的Object,这样的不便之处是有事需要特意为了解析该json而写一个class,对一些不规范的的Json,难以用Object来转换的,用他们的方法就不叫难行得通了。

如,需要对以下Json进行解析

{
"total": 1,
"rows": [
{
"datetime": "2017-12-19 0:00:00",
"product": "硅树脂",
"value": "3"
}
]
}

对于该Json,如果我们先转成object再来解析,那么问题来了,这个object怎么写呢?不好写,那么,我们就用最直接暴力的方法!!

            JArray obj = (JArray)JsonConvert.DeserializeObject("["+JsonText+"]");

需要注意的是,我们上文中提到的json的最外围是没有[ ]的,所以拼接一对[ ](代码中的红色部分)

如果不加这对中括号,会产生以下报错:Cannot access child value on Newtonsoft.Json.Linq.JValue.

好,如何取json中的值呢?

比如  我们如果要去total的值1   怎么取?

obj[0]["total"].toString()

如果要去取rows下的项目的数量呢?

obj[0]["rows"].count()

如果要取rows的第一项的value的值呢?

obj[0]["rows"][0]["value"].toString()


学会了吗?很灵活简单,类似数组的用法。

最后,Newtonsoft还可以把object(包括list和枚举等)转换成json


JsonConvert.SerializeObject(object);

.Net利用Newtonsoft进行解析Json的快捷方法的更多相关文章

  1. 用jquery解析JSON数据的方法以及字符串转换成json的3种方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...

  2. Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解

    Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解 一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ v ...

  3. Java解析JSON文件的方法

    http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...

  4. C#解析json文件的方法

    C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...

  5. C# JavaScriptSerializer 解析Json数据(多方法解析Json 三)

    准备工作: 1.添加引用System.Web.Extensions, 2..net3.5+版本都有,如果VS2010找不到,在这个文件夹找:C:\Program Files\Reference Ass ...

  6. QT使用QJson生成解析Json数据的方法

    QT中使用json还是比较方便的,下面用例子直接说明 举例子之前首先推荐一个在线解析json格式的网站,具体格式用法如下图所示: 之后根据这个格式进行json数据解析. QT使用json需要包含的头文 ...

  7. json.net(Json.NET - Newtonsoft)利用动态类解析json字符串

    将对象转换为字符串很简单,唯一要注意的点就是为了避免循环要在需要的字段上添加jsonignore属性.可以参照这篇博文:http://www.mamicode.com/info-detail-1456 ...

  8. 【C#】使用Json.NET(newtonsoft)解析Json

    最近做的WPF项目中,需要一个C#下的Json实现. 在Json的官网http://www.json.org/中查找,可见C#的Json工具主要有如下: 尝试了排在最前面的fastJSON,反序列化时 ...

  9. C# 后台解析json,简单方法 字符串序列化为对象,取值

    如果后台是一个JSON的字符串格式如下: string str = "{\"Success\":true,\"Msg\":\"成功!\&qu ...

随机推荐

  1. ZOJ 3229 Shoot the Bullet [上下界最大流]

    ZOJ 3229 Shoot the Bullet 题意:此生无悔入东方 上下界最大流 spj挂掉了我也不知道对不对,把代码放这里吧以后正常了可能会评测一下 #include <iostream ...

  2. ajax请求 readyState为0 可能原因之一

    问题:同样的代码逻辑,PC端和iOS都能正常访问,但是Android系统请求都是报错: 上网查阅,关于ajax请求失败且状态码都是0的情况有很多,最后排查的原因是:域名证书问题:

  3. python数据分析工具包(3)——matplotlib(一)

    前两篇文章简单介绍了科学计算Numpy的一些常用方法,还有一些其他内容,会在后面的实例中学习.下面介绍另一个模块--Matplotlib. Matplotlib是一个Python 2D绘图库,试图让复 ...

  4. Maven中避开测试环节

    两种方法 修改pom文件 添加<skipTests>true</skipTests>标签 <plugin> <groupId>org.apache.ma ...

  5. cloud9 ide

    https://github.com/tekacs/cloud9 http://www.pjhome.net/article/Javascript/nodeJS_IDE_cloud9.html htt ...

  6. How to install tcpping on Linux.md

    To install tcptraceroute on Debian/Ubuntu: $ sudo apt-get install tcptraceroute To install tcptracer ...

  7. Redis入门_下

    本文主要介绍redis一些高级特性. 1.Redis HyperLogLog Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常 ...

  8. MySQL数据库基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值'NULL'或'DEFAULT',主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  9. 高性能javascript笔记

    ----------------------------------------------------------- 第一章 加载和执行 ------------------------------ ...

  10. Spring 中出现Element : property Bean definitions can have zero or more properties. Property elements correspond to JavaBean setter methods exposed by the bean classes. Spring supports primitives, refer

    在这个ApplicationContext.xml文件中出现 如下报错 Element : property Bean definitions can have zero or more proper ...