获取Json中特定的值
假如我们得到了一个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中特定的值的更多相关文章
- 通过YAJL获取json中的值
这里主要是举例说明一下假设通过yajl获取json中的值. 对于array和object来说,获取的方式略有不同,详细能够參考以下的代码. 我仅仅是从网上搜集信息.知道有这么一种方法.假设还有别的方法 ...
- for in 循环获取json中的键(key)与值(value)
一 .for in 循环 1.获取json中的键(key)与值(value): var data = {name:'张三',age:'20岁',sex:'男'}; for (var a in data ...
- C#获取json字符串指定的值
Newtonsoft.Json在json和对象之间转化是一个非常强大的工具. 对象转化json字符串 Newtonsoft.Json.JsonConvert.SerializeObject() jso ...
- 获取JSON对象的属性值
1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- 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 ...
- jsp页面使用el 按key获取map中的对应值
jsp页面使用el 按key获取map中的对应值 转自:<jsp页面使用el 按key获取map中的对应值>地址:http://blog.csdn.net/baple/article/de ...
- 给定桩号获取纵断面中的高程值(c# for civil3d)
通过civil3d提供的api,也就是纵断面Profile类提供的方法---public double ElevationAt(double station),就可以很轻松的获取纵断面对象某桩号处的高 ...
- 在kindeditor 获取textarea 中 输入的值
要在kindeditor 获取textarea 中 输入的值 必须在kindeditor创建的时候添加下面红色字体的代码 kindeditor创建代码如下: var editor;KindEd ...
- 【Java必修课】通过Value获取Map中的键值Key的四种方法
1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...
随机推荐
- Spring MVC 笔记 概述
学习笔记 模型:封装装程序数据 视图:渲染模型数据,一般来说就是输出HTML 控制:处理请求,构建模型并将其传递给视图进行渲染 以上三者均围绕DispatcherServlet设计,它处理所有的HTT ...
- Highcharts教程--把js代码从html中抽离出来,放到单独的一个js文件中。由html页面调用
1.html页面写法 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- RHEL6 配置Yum库
在/mnt目录下创建子目录“/cdrom”(用于将iso文件挂载到此目录下) 镜像状态确定为“已连接”(“已连接”未勾选的情况下无法获得iso文件) 配置自动挂载文件 (系统开机时会主动读取“/etc ...
- 一篇入门Node.js
目录 1.Node.js 简介 2.Node.js NPM 3.Node.js 模块 4.Node.js 事件 5.Node.js Buffer 6.Node.js 文件系统 7.Node.js St ...
- 46.颜色+品牌下钻分析时按最深层metric进行排序
主要知识点: 在做下钻分析时的排序 需求,以颜色进行bucket,这里bucket里面的doc以其各品牌的平均价格排序, GET /tvs/sales/_search { " ...
- Battlestation Operational
Battlestation Operational Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- noip模拟赛 钻石
分析:用裸暴力可以得60分,每次dfs,看第i个盒子到底有没有钻石就行了.其实这很像0/1背包问题,只是多了一个m的限制.这要怎么办呢?因为概率是可以加减的,所以可以先不考虑m的限制,求出概率,然后d ...
- F1: A Distributed SQL Database That Scales GOOGLE F1 论文
http://research.google.com/pubs/pub41344.html http://research.google.com/pubs/pub36726.html
- android程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决
Socket不能对外连接,错误不会被报出,调试的时候,能看到Exception, 一般是抛出 java.net.socketexception permission denied这个异常.只要你的程序 ...
- 转:分布式事务之TCC服务设计和实现注意事项
由公司微服务培训引起的一丢丢对TCC的好奇 原文:https://yq.aliyun.com/articles/609854 一.TCC简介 TCC是一种比较成熟的分布式事务解决方案,可用于解决跨库操 ...