@RequestMapping(value = {"save"})
@ResponseBody
public Result save(TBaseInterventionPlan model,String tBaseRegulateInterventions) {
Result result; List<TBaseRegulateIntervention> list = new ArrayList<TBaseRegulateIntervention>(); if (StringUtils.isNotBlank(tBaseRegulateInterventions)) {
JSONArray json = JSONArray.parseArray(tBaseRegulateInterventions); // 首先把字符串转成 JSONArray 对象 if (json.size() > 0) {
for (int i = 0; i < json.size(); i++) {
JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
TBaseRegulateIntervention t = new TBaseRegulateIntervention();
t.setRegulateId(job.get("regulateId").toString());
t.setContent(job.get("content").toString());
list.add(t);
}
}
} //保存更改干预方案
iTBaseRegulateInterventionService.update(model, list);
result = Result.success();
return result;
}
 public void update(TBaseInterventionPlan model, List<TBaseRegulateIntervention> tBaseRegulateInterventions){
List<TBaseRegulateIntervention> list = new ArrayList<TBaseRegulateIntervention>(); Map<String,String> map = new HashMap<String,String>(); if(StringUtils.isNotBlank(model.getId())){
TBaseRegulateIntervention tBaseRegulateIntervention = new TBaseRegulateIntervention();
tBaseRegulateIntervention.setInterventionId(model.getId());
//通过干预方案id查找关联表中的方案内容
list = tBaseRegulateInterventionMapper.select(tBaseRegulateIntervention); if (CollectionUtils.isNotEmpty(list) && CollectionUtils.isNotEmpty(tBaseRegulateInterventions)){
//将查出来的list保存到map
for(TBaseRegulateIntervention t : tBaseRegulateInterventions){
map.put(t.getRegulateId(),t.getContent());
} //将前台传进来的list和数据库的list比较,改变了就更新
for(TBaseRegulateIntervention s : list){ System.out.print("++++++++++++++" + s.getRegulateId());
System.out.print("***************" + s.getContent()); if(!s.getContent().equals(map.get(s.getRegulateId()))){
System.out.print("-----------------" + map.get(s.getRegulateId()));
s.setContent(map.get(s.getRegulateId()));
tBaseRegulateInterventionMapper.updateByPrimaryKeySelective(s);
}
}
} //干预方案id不为空就更改干预方案
iTBaseInterventionPlanService.updateByPKNotNull(model);
}else {
model.setCreateTime(new Date()); //干预方案id为空就保存干预方案
iTBaseInterventionPlanService.save(model); if(CollectionUtils.isNotEmpty(tBaseRegulateInterventions)){
for (TBaseRegulateIntervention r : tBaseRegulateInterventions) {
TBaseRegulateIntervention tBaseRegulateIntervention = new TBaseRegulateIntervention();
tBaseRegulateIntervention.setRegulateId(r.getRegulateId());
tBaseRegulateIntervention.setInterventionId(model.getId());
tBaseRegulateIntervention.setContent(r.getContent());
tBaseRegulateIntervention.setCreateTime(new Date()); this.save(tBaseRegulateIntervention);
}
} }
}

很久没写博客了,除了工作忙懒得写之外,还有第一篇关于FQ的博客被系统删了让我很无语,这次就记录一下JSON解析的问题,以后再遇到可以快速找到类似的解决方法。

java后台解析前端传来的json的更多相关文章

  1. 项目记事【SpringMVC-1】:后台接收前端传来的JSON,并转成对象

    背景: 最近项目中使用SpringMVC,需要从前端接收JSON格式的请求,在后端自动转成一个与JSON格式相同的对象. 由于是一个老项目,Spring的版本是3.2.7. 问题1:POST or G ...

  2. java后台对前端输入的特殊字符进行转义

    转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...

  3. JSON的简单使用_解析前台传来的JSON数据

    package cn.rocker.json; import org.junit.Test; import net.sf.json.JSONArray; import net.sf.json.JSON ...

  4. 你不可错过的二维码生成与解析-java后台与前端js都有

    1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...

  5. Java后台 解析JSON的几个方法

    1.对象转JSON对象. public static void main(String[] args) { Domain demo = new Domain( "在线JSON校验格式化工具 ...

  6. Java如何接收前端传来的多层嵌套的复杂json串

    想看问题直接解决方式,直接拉到博文底部. Spring的controller在接收前端传参的时候如果参数使用@RequestBody标注的时候 @RequestBody 则会把前端参数转为JSON的形 ...

  7. 【Jsoup】Jsoup解析Html标签(Java后台解析)

    中文API网站(下载地址): http://www.open-open.com/jsoup/ 有时候编辑器传到后台的内容是带Html标签的,或者有时候需要形成一个完整的Html文档,也或者需要解析其中 ...

  8. c#将前端传来的Json解析成对象

    描述:因工作中需要将C#中的Json字符串转换为对象,对此记录下. 解决办法: 1.前端传过来的Json字符串,OrderAppModuleJson即前端传递到后端的Json字符串 string st ...

  9. java后端接收前端传来的复杂对象(包含List对象集合)

    最近在和安卓对接口的时候发现往java后端传数据的时候,后台对象无法接收. 说明:后台对象为 类似结构 ObjectA{ private String  a; private String b; pr ...

随机推荐

  1. 剖析 GSM 加密机制以及位置更新的过程

    你有没有想过打开手机时会发生什么?它是如何以安全的方式与网络进行通信?几乎所有人都知道TCP / IP,并且可能许多人还是专家,但是谈到电信方面,很少有人知道它的内部原理. gsm中的消息结构是什么? ...

  2. 关于ajax请求跨域问题

    jQuery中的异步请求跨域的方法: xhrFields: {withCredentials: true} 当设置为  true时,表示允许跨域: false时,表示禁止跨域

  3. logback-spring.xml 博客分享

    https://juejin.im/post/5b51f85c5188251af91a7525

  4. Reading Level Assessment Using Support Vector Machines and Statistical Language Models-paper

    Authors: Sarah E. Schwarm University of Washington, Seattle, WAMari Ostendorf University of Washingt ...

  5. angular6新建项目

    mkdir  angular6project cd angular6project ng new demo      新建一个普通项目 ng new demo --routing  新建一个带路由的项 ...

  6. HttpWebRequest post 请求超时问题

    在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步, 发送一个请求, 包含一个Expect:100-continue, ...

  7. Mathematics for Computer Science (Eric Lehman / F Thomson Leighton / Albert R Meyer 著)

    I Proofs1 What is a Proof?2 The Well Ordering Principle3 Logical Formulas4 Mathematical Data Types5 ...

  8. js+css jQuery实现页面后退执行 & 遮罩弹框

    JS部分 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> < ...

  9. python制作模块

    自己写的函数,为了下一次方便用,做成模块 主要有这几个步骤: 1:准备发布 2:构建发布 3:导入模块并使用 1:准备发布 首先,我自己写的一个打印出列表(含嵌套列表),打印出列表中的每个数据项,文件 ...

  10. C语言编程知识点

    (1)预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题):#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 1) #defin ...