@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. JAVA学习笔记系列3-JVM、JRE和JDK的区别

    JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”.它和os打交道 JRE(Java Runtime Environment)包含:Java ...

  2. 利用Java获取ip地址

    方法1 public static String getIp2(HttpServletRequest request) { String ip = request.getHeader("X- ...

  3. Tex_Err:缺失wlscirep.cls

    使用期刊模板编译时,需要'.cls'一类格式文件支持.从Overleaf上直接Copy代码到本地,发现自己的tex运行时会报错: ! LaTeX Error: File `wlscirep.cls' ...

  4. 13--Python入门--文件读写--CSV&Excel文件

    EXCEL文件 import pandas as pd excel=pd.read_excel('read_excel.xlsx') print(excel) CSV文件 import pandas ...

  5. vim中将小写替换为大写--快速解决变量名风格

    将C语言的下划线分割快速替换为Java的驼峰方式. 命令如下 :%s/_\([a-zA-Z]\)/\U\1/g 参考文档

  6. Cocos2dx利用intersectsRect函数检测碰撞

    if (sp1->boundingBox().intersectsRect(sp2->boundingBox())) { pLabel->setString(“碰撞飞机爆炸”); } ...

  7. POJ3017 Cut the Sequence

    题意 Language:Default Cut the Sequence Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 122 ...

  8. centos7以rpm方法装mysql5.7及大坑

    环境: CentOS Linux release 7.5.1804 (Core)   Mysql版本: MySQL-5.7.17-1.el6.x86_64.rpm-bundle.tar   下载地址( ...

  9. Eclipse Build path

    Build Path用于设置Java的构建路径,管理Java工程所包含的资源,使工程结构清晰合理. 包括以下几项: Source Source包括 source folder和output folde ...

  10. [转]vs2010用 boost.python 编译c++类库 供python调用

    转自:http://blog.csdn.net/wyljz/article/details/6307952 VS2010建立一个空的DLL 项目属性中配置如下 链接器里的附加库目录加入,python/ ...