最近项目中需要封装一套复杂的数据模型返回给前端,大致就是一个用户会有多笔订单,每个订单下可能会有多笔保单,

大致的数据模型如下:

为了方面描述,先看一下一个用户下有一条订单,一条订单下有一个保险订单的情况

data: {

" allCommunityTotalContribution ": "全社总盈余贡献单位数",

" mySumContributionNumber ": "我的保单盈余贡献",

" orderDetailModel ": [{

“orderNumber”:“订单号”,

" policyDetailModel ":{

“orderNumber”:“订单号”,

“orderEffectiveTime”:“订单生效时间”,

“insuranceName”: 保险名称,

“nameOfAssured”:“被保险人姓名”,

“policyEffectiveState”:“保单生效状态”,

“surplusContributionNumber”:“对应保单盈余贡献单位数”

},
                         },
                ]
},

success: true

此时,需要定义数据库对应的Model

订单层面的list<model>下还有保单层面的model

保单层面下的model定义了保单的相关属性

下面是mapperInterface和mapper.xml文件

自定义一个resultmap,将订单层面的ORDER_NUMBER和该订单号对应的保单号对应,因为是一对多,所以用标签<collection>,,因此在下面的<collection>中需要多定一个属性,用ORDER_NUMBER对应保单

mybati会自动根据自己定义的resultMap去封装参数到model中

返回的参数如下:

{
"data": {
"allCommunityTotalContribution": 10383837.27,
"mySumContributionNumber": 404316.24,
"proportionValue":"占全社总数比例小于万分之0.1",
"orderDetailModel": [
{
"orderEffectiveTime": "2017-05-26",
"orderNumber": "D000001725261991",
"policyDetailModel": [
{
"insuranceCode": "IAMGLTD01A",
"insuranceName": "互信一生终身团体养老年金保险",
"nameOfAssured": "沈静",
"orderNumber": "D000001725261991",
"policyEffectiveState": "1",
"surplusContributionNumber": 101079.06
}
]
},
{
"orderEffectiveTime": "2017-05-26",
"orderNumber": "D000002265263965",
"policyDetailModel": [
{
"insuranceCode": "IAMGLTD01A",
"insuranceName": "互信一生终身团体养老年金保险",
"nameOfAssured": "沈静",
"orderNumber": "D000002265263965",
"policyEffectiveState": "1",
"surplusContributionNumber": 101079.06
}
]
},
{
"orderEffectiveTime": "2017-05-26",
"orderNumber": "D000003875264027",
"policyDetailModel": [
{
"insuranceCode": "IAMGLTD01A",
"insuranceName": "互信一生终身团体养老年金保险",
"nameOfAssured": "沈静",
"orderNumber": "D000003875264027",
"policyEffectiveState": "1",
"surplusContributionNumber": 101079.06
}
]
},
{
"orderEffectiveTime": "2017-05-26",
"orderNumber": "D000003265263561",
"policyDetailModel": [
{
"insuranceCode": "IAMGLTD01A",
"insuranceName": "互信一生终身团体养老年金保险",
"nameOfAssured": "沈静",
"orderNumber": "D000003265263561",
"policyEffectiveState": "1",
"surplusContributionNumber": 101079.06
}
]
}
]
},
"success": true
}

关于多重嵌套的JSON数据解析的更多相关文章

  1. python中jsonpath模块,解析多层嵌套的json数据

    1. jsonpath介绍用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, ...

  2. JSON数据解析 基础知识及链接收集

    JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法.类似 XML.但是JSON 比 ...

  3. iOS - JSON 数据解析

     iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...

  4. 使用Gson轻松解决复杂结构的Json数据解析

    转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803 JSON简介 JSON(JavaScript Object Notati ...

  5. 多叉树结构:JSON数据解析(一)

    多叉树结构:JSON数据解析(一) 最近做一个实时数据搜索引擎的项目中,在项目架构的偏顶层需要写一个JSON数据解析的模块,由于目前JSON解析没有现成统一开源框架可以利用,目前只是手工利用com.a ...

  6. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...

  7. 浅谈JSON数据解析方法

    JSON数据解析 JSON是什么?? 如何把JSON数据解析出来 如何把一个字典转换为JSON JSON详细介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交 ...

  8. JSON数据解析(转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  9. JSON数据解析(GSON方式) (转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...

随机推荐

  1. 一种获取xml文件某个节点内容的shell方法

    配置文件 config.xml <xml> <server> <name>srv-01</name> </server> <serve ...

  2. GitHub安装和使用

    GitHub是一个基于git的代码托管平台,付费用户可以建私人仓库,一般的免费用户只能使用公共仓库,也就是代码要公开. Github 由Chris Wanstrath, PJ Hyett 与Tom P ...

  3. python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)

    ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 ft ...

  4. P2733 家的范围 Home on the Range

    又是一校内模拟赛见的题 不知道为什么出题人怎么这么喜欢USACO的Farmer John的他的牛... 感觉这道题不是特别的难,但也不很水 同机房的神仙们都说这个题是一道二维前缀和的裸题,但我当时的确 ...

  5. Code Conventions for the JavaScript Programming Language

    This is a set of coding conventions and rules for use in JavaScript programming. It is inspired by t ...

  6. 淘宝开放平台TOP SDK调用对接淘宝或天猫

    如果在淘宝/天猫上开了网店,用户自己也有一套自己的管理平台,这时可能会考虑和淘宝进行数据对接.这就需要考虑调用阿里提供的开发接口来推送和接收数据. 对接的方式有2种,一种是通过http接口,另外一种是 ...

  7. java容器---Comparable & Comparator

    1.接口Comparable<T> API    参数类型:T ---可以与此对象进行比较的那些对象的类型 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的c ...

  8. Struts 2 Tutorial

    Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applicati ...

  9. day7面向对象--进阶

    静态方法(@staticmethod)     通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里 ...

  10. swftools中的pdf2swf转换Error overflow ID 65535 解决办法

    近几日因为项目需要在线转换pdf到swf实现电子期刊阅读,用到了这个工具,版本是:swftools-0.9.2.tar.gz 当然也遇到了很头疼的问题,那就是在转换pdf中色彩图形比较复杂的页时会抛出 ...