[
{
"orderNo": "",
"time": "2016-09-09 12:23:33",
"orderStatus": "",
"freeShipping": true,
"fullCut": ,
"originalCost": ,
"actualPayment": ,
"goods": [
{
"UserId": "",
"GoodsId": "",
"Total": ,
"Number": ,
"ConCcoin": ,
"PayMode": "支付宝",
"Price": "20.00",
"goodsImg": "UpLoadImg/GoodsImage/546fda6d-8417-4b8f-bac6-3084dca420a9.jpg",
"shopname": "两颗牙",
"goodsTitle": "周村烧饼",
"manmoney": "",
"jianmoney": "",
"jianyoufei": ""
},
{
"UserId": "",
"GoodsId": "",
"Total": ,
"Number": ,
"ConCcoin": ,
"PayMode": "支付宝",
"Price": "60.00",
"goodsImg": "UpLoadImg/GoodsImage/931be419-e9d3-4dae-ae93-5af619c217d9.jpg",
"shopname": "两颗牙",
"goodsTitle": "山东特产山东大枣1000g",
"manmoney": "",
"jianmoney": "",
"jianyoufei": ""
}
]
}
]

上面为要解析的JSON数据

 var json = "[{\"orderNo\": \"3213123123123\",\"time\": \"2016-09-09 12:23:33\",\"orderStatus\":\"1\", \"freeShipping\": true, \"fullCut\": 20,\"originalCost\": 340, \"actualPayment\": 320,\"goods\": [";
json += " {\"UserId\": \"5\",\"GoodsId\": \"8\", \"Total\": 40, \"Number\": 2, \"Price\": \"20.00\", \"shopname\": \"两颗牙\", \"manmoney\": \"200\", \"jianmoney\": \"0\",\"jianyoufei\": \"10\"},";
json += " {\"UserId\": \"5\",\"GoodsId\": \"7\", \"Total\": 60, \"Number\": 1, \"Price\": \"60.00\",\"shopname\": \"两颗牙\", \"manmoney\": \"200\", \"jianmoney\": \"0\",\"jianyoufei\": \"10\"},"; json += " ]} ]"; OrderDetails[] datas = JsonConvert.DeserializeObject<OrderDetails[]>(json);
List<OrderDetailsInsert> insert = new List<OrderDetailsInsert>();
foreach (OrderDetails data in datas)
{
var shopname = string.Empty;//判断是否同一个商家
foreach (var item in data.goods)
{
OrderDetailsInsert getinfo = new OrderDetailsInsert();
getinfo.orderno = data.orderno;
getinfo.time = data.time;
getinfo.orderStatus = data.orderStatus;
getinfo.actualPayment = data.actualPayment;
getinfo.orderno = data.orderno;
if (data.freeShipping == true)
{
getinfo.Remark = "此商品符合包邮条件及满" + item.manmoney + "减" + data.fullCut + "条件:订单总金额:" + data.originalCost + "符合满减条件减去:" + data.fullCut + "实际付款金额:" + data.actualPayment;
}
else if (!string.IsNullOrEmpty(data.fullCut.ToString()) && data.fullCut != )
{
getinfo.Remark = "此商品符合满" + item.manmoney + "减" + data.fullCut + "条件:订单总金额:" + data.originalCost + "符合满减条件减去:" + data.fullCut + "实际付款金额:" + data.actualPayment;
}
else
{
getinfo.Remark = "订单实际付款金额:" + data.actualPayment;
}
getinfo.GoodsId = item.GoodsId;
getinfo.Total = item.Total;
getinfo.Number = item.Number;
getinfo.Price = item.Price;
insert.Add(getinfo);
}
}

要用的对象类

 public class OrderDetailsInsert
{
public string orderno { get; set; }
public DateTime time { get; set; }
public char orderStatus { get; set; } public Decimal actualPayment { get; set; } public int GoodsId { get; set; }
public string Total { get; set; }
public int Number { get; set; }
public string Price { get; set; }
public string Remark { get; set; }
} public class OrderDetails
{
public string orderno { get; set; }
public DateTime time { get; set; }
public char orderStatus { get; set; }
public bool freeShipping { get; set; }
public Decimal fullCut { get; set; }
public Decimal originalCost { get; set; }
public Decimal actualPayment { get; set; } public GoodsInfoList[] goods { get; set; } } public class GoodsInfoList
{
public int UserId { get; set; }
public int GoodsId { get; set; }
public string Total { get; set; }
public int Number { get; set; }
public string Price { get; set; }
public string shopname { get; set; }
public string manmoney { get; set; } }

效果图:

参考资料:

http://blog.csdn.net/chinacsharper/article/details/9246627

http://blog.csdn.net/sgear/article/details/7587705

http://blog.csdn.net/leftfist/article/details/42435887

C# Newtonsoft.Json 解析多嵌套json 进行反序列化的更多相关文章

  1. 【Java_Spring】java解析多层嵌套json字符串

    java解析多层嵌套json字符串    

  2. Unity的Json解析<二>–写Json文件

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50378805 作者:car ...

  3. Unity的Json解析<一>--读取Json文件

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50373558 作者:car ...

  4. java解析多层嵌套json字符串

    java分别解析下面两个json字符串 package jansonDemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjso ...

  5. JSON解析工具-org.json使用教程

    转自:http://www.open-open.com/lib/view/open1381566882614.html 一.简介  org.json是Java常用的Json解析工具,主要提供JSONO ...

  6. Java:JSON解析工具-org.json

    一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网 ...

  7. JSON 解析器。JSON.stringify和JSON.parse

    以前用的是JavaScript  的eval. 现在JSON 提供了JSON.stringify和JSON.parse两个函数. JSON.parse用于从一个字符串中解析出json对象. JSON. ...

  8. Gson 解析多层嵌套JSON数据

    http://stackoverflow.com/questions/14139437/java-type-generic-as-argument-for-gson

  9. JSON解析器之jackson json数据和java对象转换

随机推荐

  1. Navicat连接Oracle数据库报错ORA-28547解决方法

    先说明下我机器的环境: 1.Win10 - 64bit 2.Navicat Premium_11.2.7  - 64bit 3.未安装Oracle数据库(包括Client也未安装) 解决方法: 1.下 ...

  2. C#变量、常量

    变量 一.命名变量:标识符 为变量命名时要遵循C#语言的命名规范: 1.变量名只能由字母.数字和下划线组成,而不能包含空格.标点符号.运算符等其他符号 2.变量名不能与C#中的关键字名称相同   二. ...

  3. python模块详解 time与date time

    模块的分类: a:标准库 内置模块 如sys,os等 b:开源模块 大神封装好的 直接可以拿来用的. c:自定义模块 自己封装的模块 Python中通常表示时间的方式有:时间戳.格式化的日期.元组(九 ...

  4. linux下搭建svn并同步更新至web目录

    安装svn 使用yum安装 yum install subversion -y 安装成功后查看版本库 svnserve  --version 生成目录 cd /var mkdir svn cd svn ...

  5. PHP:将json数据放进html标签中的详细讲解

    1.在controller中调用某方法,得到最终的json数据.根据框架开发形式,将Json数据传入视图中 2.在视图中,我们放置一个hidden形式的标签,并获取到json数据 3.这时候,我们查看 ...

  6. C++指针、引用、const

    ; int *p = &a; //定义指针p指向变量a *p = ; //*p代表a的值 ; p = &b; //p指向变量b *p = ; //此时*p代表b的值 ] = {,,}; ...

  7. leetcode 141、Linked list cycle

    一种方法是用set存储出现过的指针,重复出现时就是有环: class Solution { public: bool hasCycle(ListNode *head) { set<ListNod ...

  8. IOS 读取xib到tabelView

    /**每一行显示怎样的ceLl*/ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIn ...

  9. MHA故障切换方案

    mha故障切换当master 挂掉后会自动切换到slave01上去,可以看 tailf /var/mha_log/manager.log4个问题:1,切换后且原master01mysql服务启动OK, ...

  10. nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉

    nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉  发布于 29天前  作者 qq_96c46988  64 次浏览  复制  上一个帖子  下一个帖 ...