用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中与Adapter相关的控件----ListView
ListView讲解: 一.ListView这个控件是一个使用非常广泛的控件,值得深入的学习和研究.基本使用已经在Adapter中使用过了 二.常用的属性和方法 footerDividersEnabl ...
- C#数组排序以及比较对象的大小
先来看个小例子吧 ,,,,,}; Array.Sort(intArray); Array.ForEach<int>(intArray,(i)=>Console.WriteLine(i ...
- asp.net内置对象 Response对象使用介绍
Response对象是HttpRespone类的一个实例.该类主要是封装来自ASP.NET操作的HTTP相应信息.Response对象将数据作为请求的结果从服务器发送到客户浏览器中,并提供有关响应的消 ...
- LeetCode OJ-- Combination Sum II **
https://oj.leetcode.com/problems/combination-sum-ii/ 一列数,每个数只能用一次或者不用,给出和为target的组合. 递归写的深搜,使用了编程技巧, ...
- AC日记——[Sdoi2016]数字配对 bzoj 4514
4514 思路: 很受伤现在,,测了那么多次不过的原因就是因为INF不够大: 解法有两种: 解法1: 把n个点按照质因数个数为奇或偶分为两个点集(很容易就可以想到): 然后,按照题目连边跑最大费用流: ...
- luogu P3800 Power收集
题目背景 据说在红雾异变时,博丽灵梦单身前往红魔馆,用十分强硬的手段将事件解决了. 然而当时灵梦在Power达到MAX之前,不具有“上线收点”的能力,所以她想要知道她能收集多少P点,然而这个问题她答不 ...
- 【java】安全加密MessageDigest的功能及用法【hash一致性算法】
链接地址:https://blog.csdn.net/ma1kong/article/details/2662997 1.查看MessageDigest源码的注释说明 2.和hash一致性算法 什么关 ...
- 【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么
本篇 将针对[日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么]这一个主题进行探索. 这个测试项目是根据[spr ...
- Activity的onRestart()方法调用时机
在项目中看到Activity使用onRestart(),平时对这个方法的调用时机知道的比较少,研究一下它啥时候会被调用. 代码很简单: <span style="font-size:1 ...
- 线段树专题—ZOJ1610 Count the Colors
题意:给一个n,代表n次操作,接下来每次操作表示把[l.r]区间的线段涂成k的颜色当中,l,r,k的范围都是0到8000 分析:事实上就是拿线段树维护一段区间的颜色,整体用到的是线段树的区间更新把,可 ...