用Newtonsoft将json串转为对象的方法(详解)
首先,将json串转为一个JObject对象:
|
|
|
这个JObject是一个“值对”类型,比如说我们的json串是这样:
{ "rows":[ [ {"NumIid":"001"}, {"PicUrl":"xxx.png"}, {"Title":"xxxxx"}, {"Price":"xxx"}, {"OuterId":"xxxx"} ], [ {"NumIid":"002"}, {"PicUrl":"xxx.png"}, {"Title":"xxxxx"}, {"Price":"xxx"}, {"OuterId":"xxxx"} ], [ {"NumIid":"003"}, {"PicUrl":"xxx.png"}, {"Title":"xxxxx"}, {"Price":"xxx"}, {"OuterId":"xxxx"} ] ]}|
|
那么可以jo["rows"]就是一个数组,如果这个反之如果不是数组可能是一个对象,那么我们根据他实际是一个什么值来进行强制转换。
以上面这个json串为例,我们这样取到这个数组:
JArray arr = (JArray)jo["rows"];
我们发现这个数组里面还是一个数组,而里层数组里面才是一个object,那么我们可以这样取:
for (int i = 0; i < arr.Count; i++) { JArray arr2 = (JArray)arr[i]; for (int j = 0; j < arr2.Count; j++) { JObject obj = (JObject)arr2[j]; Response.Write(obj["NumIid"]); Response.End(); } }|
|
如果实际是一个数组,我们就用JArray强制转换,如果实际是一个值对,我们就用JObject强制转换。
最后一层应该是一个值对类型的object,怎么把这些值全部取出来?
最后应该是形如:
{"NumIid":"003"}
取值很简单,直接:
string str=obj["NumIid"];
问题是有时候这个obj是这样的:
{"PicUrl":"xxx.png"}
而且你不知道他什么时候是什么。
这时应该这样取:
foreach (KeyValuePair<string, JToken> kp in obj) { Response.Write(kp.Key); Response.Write("="); Response.Write(kp.Value); Response.End(); }|
|
|
以上这篇用Newtonsoft将json串转为对象的方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
用Newtonsoft将json串转为对象的方法(详解)的更多相关文章
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解 一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ v ...
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- Java构造和解析Json数据的两种方法详解二——org.json
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...
- Java构造和解析Json数据的两种方法详解一——json-lib
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...
- JSON.parse()与JSON.stringify()和eval()使用方法详解
在和后端对接口的时候,遇到了一个问题 就是series里面数据变量进行拼接的时候,data数据里面全部是数值int类型的 但是因为某些需求需要让他进行某个数据之前的数据都为空 我试过用空字符串和und ...
- JSP数据交互——九大内置对象及其方法详解(一)
①既然说到JSP内置对象,那么什么是JSP内置对象呢? 解析:JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象. 如下代码片段: <% int[] value ...
- CorelDRAW中六种复制对象的方法详解
复制可保证对象的大小一致,复制也是所有操作中最基本的操作.CorelDRAW软件中支持多种复制对象的操作,本教程将详解CorelDRAW中六种复制对象的方法. 方法一 选择复制对象,点击编辑→复制,再 ...
- window对象open方法详解
window.open详解 window.open("sUrl","sName","sFeature","bReplace&quo ...
- Java构造和解析Json数据的两种方法详解一
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...
随机推荐
- android基本控件学习-----ProgressBar
ProgressBar(进度条)讲解 一.常用属性和基础使用实例 (1)常用属性: android:max:进度条的最大值 android:progress:进度条已完成进度值 android:pro ...
- HDU 1025 Constructing Roads In JGShining's Kingdom[动态规划/nlogn求最长非递减子序列]
Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
- 大话Spark(4)-一文理解MapReduce Shuffle和Spark Shuffle
Shuffle本意是 混洗, 洗牌的意思, 在MapReduce过程中需要各节点上同一类数据汇集到某一节点进行计算,把这些分布在不同节点的数据按照一定的规则聚集到一起的过程成为Shuffle. 在Ha ...
- kafka消费者客户端
Kafka消费者 1.1 消费者与消费者组 消费者与消费者组之间的关系 每一个消费者都隶属于某一个消费者组,一个消费者组可以包含一个或多个消费者,每一条消息只会被消费者组中的某一个消费者所消费.不 ...
- selenium用法 (python)
滑动到指定元素位置 browser.find_element_by_xpath("//font[text()='资产管理部经办人'][1]").location_once_scro ...
- VS2010 MFC中 在FormView派生类里获取文档类指针的方法
经过苦苦调试,今晚终于解决了一个大问题. 我想要实现的是:在一个FormView的派生类里获取到文档类的指针. 但是出现问题:试了很多办法,始终无法获取到. 终于,此问题在我不懈地调试加尝试下解决了. ...
- 关于异步请求AJAX的具体解释
1,异步请求的方法步骤: 1,推断当前用户支持的浏览器类型 XMLHttpRequest:推断是否支持非IE浏览器,相应的创建方法:xmlhttp = new XMLHttpRequest(); wi ...
- SEO误区之——静态化页面
你随便去找一个做SEO的人或者一个公司,他百分之百会让你把网页弄成纯静态页面,然后告诉你这样对搜索引擎是如何如何地好,那么我告诉你,这个做 SEO的,肯定不专业. 网页静态化这个东西,纯属以讹传讹的事 ...
- Oracle递归操作
需求:找出代理商中没有挂商家的代理商 简单SQL如下: select * from t_proxy tp where tp.id not in (SELECT tp.id as p_id FROM t ...
- mongodb:monogo和php整合
1.到如下网址,下载php扩展包,找一个最新stable版的.