用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 ...
随机推荐
- linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
1: 台式机家里面不想再走线了. 于是去某东买了个USB无线网卡.tp的WN725N USB,非常小, 和罗技的优联接收器差不多大. 2: 驱动能自己识别是不指望了,既然是usb网卡,插入USB后 ...
- python 保留两位小数方法
原博客连接:https://blog.csdn.net/Jerry_1126/article/details/85009810 保留两位小数,并做四舍五入处理 方法一:使用字符串格式化 a = 12. ...
- 记录: 百度webuploader 分片文件上传java服务器端(spring mvc)示例的优化
最近项目上用到文件分片上传,于是找到了百度的一个开源前端控件webuploader. 于是尝试使用. 下载下来后,它提供的服务器端示例代码是php版的,那么Java版的呢? 其实,上传文件都是按照rf ...
- springBoot 定时器
程序入口类中加入注解 @EnableScheduling 配置定时任务为并行 @Slf4j @Configuration public class ScheduledConfig implements ...
- (转)C++常用函数汇总
1.标准C++库字符串类std::string的用法 begin 得到指向字符串开头的Iterator end 得到指向字符串结尾的Iterator rbegin ...
- SQL Server的WAITFOR DELAY注入
SQL Server的WAITFOR DELAY注入 WAITFOR是SQL Server中Transact-SQL提供的一个流程控制语句.它的作用就是等待特定时间,然后继续执行后续的语句.它包含 ...
- Topcoder SRM 144 DIV 1
BinaryCode 模拟 题意是:定义串P,Q,其中Q[i]=P[i-1]+P[i]+P[i+1],边界取0,并且P必须是01串.现在给你Q,让你求出P. 做法是:枚举第一位是1还是0,然后就可以推 ...
- 基于Tiny4412的I2C驱动分析
本文以tiny4412平台上到三轴加速度器为例简单分析了Linux下到i2c驱动编程. http://pan.baidu.com/s/1c0H5vRq
- 【2019】问题记录一:后端获取URL参数的值内加号“+”变成空格“ ”
问题:URL参数中加号“+”变成空格“ ” 一.现象 URL如:http://example.****.com/controller/action?param=rice+cook+panda ...
- tomcat 登录时用户名和密码问题
在编程的时候我们经常在myeclipes中直接部署web程序,大多数情况下不会登陆tomcat,这样时间长了我们就忘记了tomcat的登陆用户名和密码,下面就说一下怎么找到tomcat的用户名和密码吧 ...