假如我们得到了一个json的数据:json===》   {"Head":{"TransCode":"X1009","TransId":"20190514145005iQXk"},"Body":{"OrderSN":"95131406006","WHSE":"aaaaa","SNs":[{"SN":"HCMPFD000621"},{"SN":"1212122"}]}}

类似这样。我们要取出来里面特定的值,而且,SNs还是一个集合。

方法如下:

string OrderSn = json["Body"]["OrderSN"].ToString();
string WHSE = json["Body"]["WHSE"].ToString();
string SNs = json["Body"]["SNs"].ToString();

SNs是一个集合,怎么取出来呢:

将json字符串解析为JToken,JObject是JToken的父类,直接使用JToken比较好用

dynamic Sns =JToken.Parse(SNs) as dynamic

  for (int i = 0; i < Sns.Count; i++)//获取备注里的SN
{ if (Sns[i].SN.ToString() != "")
{
str += Sns[i].SN.ToString() + ",";
}
}

 这样子就可以循环出来里面的值了。

  HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
string response = string.Empty;
using (StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream()))
response = reader.ReadToEnd(); var j = JObject.Parse(response);
string shop_name = j["Success"]["items"]["item"][]["shop_name"].ToString();//独一味日化旗舰店、、、一层层的层级关系
{
"Success": {
"total_results": "1",
"items": {
"item": [{
"shop_name": "独一味日化旗舰店",
"serial_num": "",
"order_channel": "直营网店",
"updatetime": "",
"总数量": "3739",
"maxrowver": "",
"tid_item": [{
"storage_id": "1",
"tid": "S17fdgfgfg0349",
"pro_detail_code": "191",
"book_inventory": "-5.000",
"store_location": "",
"pro_type": "原始产品"
}, {
"storage_id": "1",
"tid": "S1712220000349",
"pro_detail_code": "152",
"book_inventory": "-4.000",
"store_location": "",
"pro_type": "原始产品"
}]
}]
}
}
}

  上面这个是其他的厂商返回的一个Json格式的数据,现在可以是Json嵌套的还挺多,其中的一个项次还有数组,现在就是把这些数据捞出来存下来。

                var j = JObject.Parse(response);
//这个就是主干的值
string shop_name = j["Success"]["items"]["item"][0]["shop_name"].ToString();//独一味日化旗舰店
string tid_item = j["Success"]["items"]["item"][0]["tid_item"].ToString();
//下面是获取数组的名细可以取出来值
JArray jArray = JArray.Parse(tid_item);
for (int i = 0; i < jArray.Count; i++)
{
JObject jdata = (JObject)jArray[i];
string pro_detail_code = jdata["pro_detail_code"].ToString();
}

  

  //将数据动态插入到数组中去               
JArray jArray = JArray.Parse(tid_item);
JArray arr = new JArray();
for (int i = ; i < jArray.Count; i++)
{
JObject obj = new JObject();
JObject jdata = (JObject)jArray[i];
obj["linenum"] = jdata["cost_price"].ToString();
obj["sku"] = jdata["sell_price"].ToString();
obj["qty"] = jdata["original_price"].ToString();
obj["inventoryname"] = jdata["sys_price"].ToString();
obj["price"] = jdata["product_name"].ToString();
arr.Add(obj);
}
var rss = new JObject
{
{"Head",new JObject
{
{"TransCode","X1009" },
{"TransId",}
}
},
{ "Body", new JObject
{
{"orderno", "orderno" },
{"billto","billto"},
{"shipto", "shipto"},
{"workid", "workid"},
{"tocity", "tocity"},
{"Address", "Address"},
{"Contact", "Contact"},
{"Tel", "Tel"},
{"detail", arr }
}
}
};

获取Json中特定的值的更多相关文章

  1. 通过YAJL获取json中的值

    这里主要是举例说明一下假设通过yajl获取json中的值. 对于array和object来说,获取的方式略有不同,详细能够參考以下的代码. 我仅仅是从网上搜集信息.知道有这么一种方法.假设还有别的方法 ...

  2. for in 循环获取json中的键(key)与值(value)

    一 .for in 循环 1.获取json中的键(key)与值(value): var data = {name:'张三',age:'20岁',sex:'男'}; for (var a in data ...

  3. C#获取json字符串指定的值

    Newtonsoft.Json在json和对象之间转化是一个非常强大的工具. 对象转化json字符串 Newtonsoft.Json.JsonConvert.SerializeObject() jso ...

  4. 获取JSON对象的属性值

    1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

  5. 1.4.1 对象与JSON转化 1.4.2 JSON与List集合转化 1.1.1 获取json中的属性 day10-05

    1.1.1 对象与JSON转化 @Test public void toJSON() throws IOException{ Jedis jedis = new Jedis("192.168 ...

  6. jsp页面使用el 按key获取map中的对应值

    jsp页面使用el 按key获取map中的对应值 转自:<jsp页面使用el 按key获取map中的对应值>地址:http://blog.csdn.net/baple/article/de ...

  7. 给定桩号获取纵断面中的高程值(c# for civil3d)

    通过civil3d提供的api,也就是纵断面Profile类提供的方法---public double ElevationAt(double station),就可以很轻松的获取纵断面对象某桩号处的高 ...

  8. 在kindeditor 获取textarea 中 输入的值

    要在kindeditor 获取textarea 中 输入的值 必须在kindeditor创建的时候添加下面红色字体的代码     kindeditor创建代码如下: var editor;KindEd ...

  9. 【Java必修课】通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

随机推荐

  1. 18/10/19 周五欢乐赛题解(c++版)

    注意本题解并没有去追求最优解,只是用比较暴力的方法求解.D题听说要改说明不是位数30位,目前除了D题可能有问题之外其他代码已经全部正确. A.查找字串 用string BF(暴力求解即可) 代码 #i ...

  2. 1. Python中的基本数据类型、运算、变量

    本文利用的是Python 3.x版本,建议学习3.x版本 Python中的基本数据类型.运算.变量 1. 基本数据类型 1.1 整数 py可以处理任意大小的整数,例如123,1234567891324 ...

  3. camera placement (paraview)

    # 'renderView1' is the view name# current camera placement for renderView1 renderView1.CameraPositio ...

  4. javascript 闭包笔记

      先来解释一下闭包: 1.闭包就是函数嵌套函数 2.内部函数可以引用外部函数的参数和变量 3.参数和变量不会被垃圾回收机制所收回( 垃圾回收机制就是用完变量之后就在内存中释放 ) 使用闭包的好处: ...

  5. hadoop-磁盘出现坏盘,如何能在线换盘

    涉及到磁盘存储路径的配置文件参数有: hdfs-site.xml <name>dfs.datanode.data.dir</name> yarn-site.xml <na ...

  6. 【郑轻邀请赛 E】Can Win

    [题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2131 [题意] [题解] 尽量让自己喜欢的队赢; A内组内的比赛都让自己喜欢的队赢; ...

  7. 【codeforces 801A】Vicious Keyboard

    [题目链接]:http://codeforces.com/contest/801/problem/A [题意] 一个字符串只由VK组成; 让你修改一个字符; 使得剩下的字符串里面子串VK的个数最大; ...

  8. Java基础之构造方法及其应用

    构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会自动调用构造方法.构造方 ...

  9. Caffe 工程的一些编译错误以及解决方案

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51371936 整理一下最近遇到caff ...

  10. [cf 599D] Spongebob and Squares

    据题意: $K=\sum\limits_{i=0}^{n-1}(n-i)*(m-i)$ $K=n^2m-(n+m)\sum{i}+\sum{i^2}$ 展开化简 $m=(6k-n+n^3)/(3n^2 ...