java后台解析前端传来的json
- @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的更多相关文章
- 项目记事【SpringMVC-1】:后台接收前端传来的JSON,并转成对象
背景: 最近项目中使用SpringMVC,需要从前端接收JSON格式的请求,在后端自动转成一个与JSON格式相同的对象. 由于是一个老项目,Spring的版本是3.2.7. 问题1:POST or G ...
- java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...
- JSON的简单使用_解析前台传来的JSON数据
package cn.rocker.json; import org.junit.Test; import net.sf.json.JSONArray; import net.sf.json.JSON ...
- 你不可错过的二维码生成与解析-java后台与前端js都有
1.二维码分类 二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...
- Java后台 解析JSON的几个方法
1.对象转JSON对象. public static void main(String[] args) { Domain demo = new Domain( "在线JSON校验格式化工具 ...
- Java如何接收前端传来的多层嵌套的复杂json串
想看问题直接解决方式,直接拉到博文底部. Spring的controller在接收前端传参的时候如果参数使用@RequestBody标注的时候 @RequestBody 则会把前端参数转为JSON的形 ...
- 【Jsoup】Jsoup解析Html标签(Java后台解析)
中文API网站(下载地址): http://www.open-open.com/jsoup/ 有时候编辑器传到后台的内容是带Html标签的,或者有时候需要形成一个完整的Html文档,也或者需要解析其中 ...
- c#将前端传来的Json解析成对象
描述:因工作中需要将C#中的Json字符串转换为对象,对此记录下. 解决办法: 1.前端传过来的Json字符串,OrderAppModuleJson即前端传递到后端的Json字符串 string st ...
- java后端接收前端传来的复杂对象(包含List对象集合)
最近在和安卓对接口的时候发现往java后端传数据的时候,后台对象无法接收. 说明:后台对象为 类似结构 ObjectA{ private String a; private String b; pr ...
随机推荐
- Spring Boot重要内容
首先POM配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- C语言求矩阵的逆
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <window ...
- 优雅的使用列表推导式和lambda
按照条件过滤列表中的数据 过滤出列表中以"KLL","KBB","KHH"开头的数据 1.使用列表推导式 [orderNoOrReturnN ...
- 第四节《Git检出》
使用过Git的朋友们都谁知道git reset可以达到重置效果,不知道的小伙伴们可以看下上一篇博客,重置命令的一个用途就是修改引用的游标指向,实际上在执行重置命令的时候没有使用任何参数对所要重置的分支 ...
- 记一次php脚本memory exhausted
表象报错如下: Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16651985 bytes) 出 ...
- python实现Content-Type类型为application/x-www-form-urlencoded发送POST请求
周日晚上接到公司的电话需要通过新榜的接口拿下微博热搜数据,拿到接口文档看了下很简单的一个post请求,主要根据时间段来获取热搜数据. 在实际编码的过程中经常遇到header的Content-Type的 ...
- SQL Agent 服务无法启动
问题现象 从阿里云上镜像过来的一台的数据库服务器,SQL Agent服务启动不了,提示服务启动后停止. 如下是系统日志和SQL Agent的日志 SQLServerAgent could not be ...
- CenterOS7.5中搭建wordpress
centeros7.5中搭建wordpress 1.环境 云平台:华为云 服务器操作系统:CentOS7.: 博客部署的服务器:Apache HTTP: 数据库:mysql: 框架:wordpress ...
- Elasticsearch -- Head插件安装
安装Head插件 由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包. <1>安装Node.js 下载解压 wget https://node ...
- Xamarin+Prism开发详解七:Plugin开发与打包测试
有了上章[Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系]的基础,现在来理解Plugin开发就简单了. 本文实例代码地址:ht ...