spring mvc 中会遇到各种数据绑定,有些不常用的,但是千万不要觉得不可以,没有什么是不可以的,只要能够想到,就可以。

数据绑定方式:

1.

注意:

当数据为包装类型的数字型时,如果Long hospitalId为空或-1,则Long departmentAllId= -1,如果Lang departmentAllId为空或-1 则Lang hospitalId = -1,既a和b不能同时存在。

如果不传hospitalId,那么在null和数字之间的判断极可能出现空指针,因为如果null!=null 后 使用==和数字判断时,hospitalId会做类型转换,从而导致空指针。

    if(hospitalId!=null && hospitalId!=-1){
            departmentAllId = -1;
        } else {
            departmentId = -1;
        }

2. 对象多个属性为集合数据

  json:

//String json = "{'signedSummaryId':1,'tilte':'bbbbb','archiveDate':'1999-2-2','createdDoctor':1001,'createdDoctorName':'ccccc','main_suit':[{'content':'1111111','pic':'1111111','voice':'1111111','archiveTypeName':'主诉','archiveType':1}],'body_check':[{'content':'2222222','pic':'2222222','voice':'222222','archiveTypeName':'查体','archiveType':2}],'diagnosis':[{'content':'3333','pic':'3333','voice':'333','archiveTypeName':'诊断','archiveType':3}],'recipel':[{'content':'444','pic':'44','voice':'44444','archiveTypeName':'处方','archiveType':4},{'content':'444aaa','pic':'44aaa','voice':'44444aaa','archiveTypeName':'处方','archiveType':4}],'report':[{'content':'555','pic':'55555','voice':'5555','archiveTypeName':'报告单','archiveType':5},{'content':'55aaa','pic':'555aaa','voice':'5555aaa','archiveTypeName':'报告单','archiveType':5}],'discharge_abstract':[{'content':'7777','pic':'7777','voice':'77777','archiveTypeName':'出院小结','archiveType':7}],'proof_of_diagnosis':[{'content':'8888','pic':'888','voice':'8888','archiveTypeName':'诊疗证明','archiveType':8}],'up_referral':[{'content':'9999','pic':'999999','voice':'99999','archiveTypeName':'上转','archiveType':9}],'down_referral':[{'content':'1010110101','pic':'1010101010','voice':'10100110','archiveTypeName':'下转','archiveType':10}],'follow_Up':[{'content':'666','pic':'3666','voice':'3666','archiveTypeName':'随诊','archiveType':6}]}";

"{
    'signedSummaryId': 1,
    'tilte': 'bbbbb',
    'archiveDate': '1999-2-2',
    'createdDoctor': 1001,
    'createdDoctorName': 'ccccc',
    'main_suit': [
        {
            'content': '1111111',
            'pic': '1111111',
            'voice': '1111111',
            'archiveTypeName': '主诉',
            'archiveType': 1
        }
    ],
    'body_check': [
        {
            'content': '2222222',
            'pic': '2222222',
            'voice': '222222',
            'archiveTypeName': '查体',
            'archiveType': 2
        }
    ],
    'diagnosis': [
        {
            'content': '3333',
            'pic': '3333',
            'voice': '333',
            'archiveTypeName': '诊断',
            'archiveType': 3
        }
    ],
    'recipel': [
        {
            'content': '444',
            'pic': '44',
            'voice': '44444',
            'archiveTypeName': '处方',
            'archiveType': 4
        },
        {
            'content': '444aaa',
            'pic': '44aaa',
            'voice': '44444aaa',
            'archiveTypeName': '处方',
            'archiveType': 4
        }
    ],
    'report': [
        {
            'content': '555',
            'pic': '55555',
            'voice': '5555',
            'archiveTypeName': '报告单',
            'archiveType': 5
        },
        {
            'content': '55aaa',
            'pic': '555aaa',
            'voice': '5555aaa',
            'archiveTypeName': '报告单',
            'archiveType': 5
        }
    ],
    'discharge_abstract': [
        {
            'content': '7777',
            'pic': '7777',
            'voice': '77777',
            'archiveTypeName': '出院小结',
            'archiveType': 7
        }
    ],
    'proof_of_diagnosis': [
        {
            'content': '8888',
            'pic': '888',
            'voice': '8888',
            'archiveTypeName': '诊疗证明',
            'archiveType': 8
        }
    ],
    'up_referral': [
        {
            'content': '9999',
            'pic': '999999',
            'voice': '99999',
            'archiveTypeName': '上转',
            'archiveType': 9
        }
    ],
    'down_referral': [
        {
            'content': '1010110101',
            'pic': '1010101010',
            'voice': '10100110',
            'archiveTypeName': '下转',
            'archiveType': 10
        }
    ],
    'follow_Up': [
        {
            'content': '666',
            'pic': '3666',
            'voice': '3666',
            'archiveTypeName': '随诊',
            'archiveType': 6
        }
    ]
}"

com.google.gson.Gson

Gson gson = new Gson();
ArchiveAddModel archiveAddModel = gson.fromJson(json, ArchiveAddModel.class);

java 数据绑定的几种方式及相关注意事项-持续更新的更多相关文章

  1. Java序列化的几种方式以及序列化的作用

    Java序列化的几种方式以及序列化的作用 本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用    有的时候我们想要把一个Java对象 ...

  2. python实现单例模式的三种方式及相关知识解释

    python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...

  3. Java创建对象的4种方式?

     [Java创建对象的4种方式?] 1)通过new语句实例化一个对象 2)通过反射机制创建对象 3)通过clone()方法创建一个对象  (复制) 4)通过反序列化方式创建对象

  4. Java创建对象的几种方式

    解析:Java创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法.(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Co ...

  5. &和&&的共同点和区别、Java字符含义和Java创建对象的几种方式

    一.&和&&的共同点和区别 1.&和&&的联系(共同点): &和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定. 操 ...

  6. Java创建对象的几种方式。

    Java创建对象的几种方式(重要): (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Con ...

  7. AngularJs学习——实现数据绑定的三种方式

    三种方式: 方式一:<h5>{{msg}}</h5>  此方式在页面刷新的时候会闪现{{}} 方式二:<h5 ng-bind="msg">< ...

  8. 使用Maven运行Java main的3种方式

    使用Maven运行Java main的3种方式 原文  http://blog.csdn.net/qbg19881206/article/details/19850857 主题 Maven maven ...

  9. 面试阿里,字节跳动,华为必须知道的Java创建对象的5种方式

    Java创建对象的5种方式 1.直接new,调用了构造器2.通过clone(),没有调用构造器3.通过反射,调用了构造器4.通过反序列化,没有调用构造器5.通过Unsafe类的allocateInst ...

随机推荐

  1. 关于TP3.2微信开发那点事(基础篇)

    许久没有为博客更新内容,今天我将过去一周做的微信服务号的相关心得体会在此分享,具体如何申请成为服务号的相关流程文档都有,可根据要求完成: 开发第一步:开发前配置: AppID-->微信号的&qu ...

  2. Zookeeper C API 指南三(回调函数)(转)

    2013-02-21 12:54 by Haippy, 9237 阅读, 0 评论, 收藏, 编辑 接上一篇<Zookeeper C API 指南二(监视(Wathes), 基本常量和结构体介绍 ...

  3. Android开发中上线后修改应用名称的若干问题

    一.在Android Studio 1.3中修改app的包名: 需求来源: 之前开发的app已经在腾讯的应用宝上线,应客户要求,app需要改名字,这个就有点麻烦了.如果申请改名字,要求如下: 截图上图 ...

  4. 用Access作为后台数据库支撑,书写一个用C#写入记录的案例

    具体的步骤: 1.创建并打开一个OleDbConnection对象 2.创建插入的SQL语句 3.创建一个OleDbCommand对象 4.使用OleDbCommand对象来插入数据 5.关闭OleD ...

  5. ANE接入平台心得记录(安卓)

    开发环境:FlashBuilder4.7 AIR13.0 Eclipse 由于我懒得陪安卓的开发环境所以我下载了包含安卓SDK Manager的Eclipse,其实直接用FlashBuilder开发A ...

  6. Font Awesome使用指南

    Font Awesome介绍 Font Awesome是一款很流行的字体图标工具.随着Bootstrap的流行而逐渐被人所认识,现在FontAwesome不仅仅可以在bt上使用,还可以应用在各种web ...

  7. luogu1097统计数字[noip2007提高组Day1T1]

    题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...

  8. Android M新的运行时权限开发者需要知道的一切

    android M 的名字官方刚发布不久,最终正式版即将来临!android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响.惊讶的是android社区鲜有谈论这事儿, ...

  9. centos7 安装拼音输入法(转载)

    http://m.blog.csdn.net/article/details?id=52137523

  10. Java核心技术点之反射

    1. 概述 Java 反射是可以让我们在运行时获取类的方法.属性.父类.接口等类的内部信息的机制.也就是说,反射本质上是一个“反着来”的过程.我们通过new创建一个类的实例时,实际上是由Java虚拟机 ...