基于Spring和Vue的Json应用

基于Spring和Vue的Json应用

一、Java后台的json字符串转化

应用场景:

  • ·json字符串转List/Object: 数据库中字段存储json字符串,或者接受前台的json字符串,按需转为实体类,插入分表
    • · List/Object转json字符串: 查表后转化为json字符串传递给前台,或者插入总表中存储字符出的字段

注:Array和Object使用语法存在差异

1、json字符串转List/Object

(1)jsonArray

字符串样式:[{"属性1": value1, "属性2":value2}, {"属性1": value3, "属性2":value4}, ]

属性可包含jsonArray

java 复制代码
public class FactoryCheckPlanItemJson {
    private Long id;
    private Long checkContents;
    private String answer;
    private List<Item> item;
}
String checkItemJsonString = "[\"id\":1,\"checkContent\":\"检查\",\"answer\":\"A\",\"item\":\"[{\"A\",\"health\"\"},{\"B\",\"unhealth\"\"}]\"]"//获取所有点位   使用json转换为任务项类型
List<FactoryCheckPlanItemJson> factoryCheckPlanItemsJson = JSON.parseArray(checkItemJsonString).toJavaList(FactoryCheckPlanItemJson.class);

(2) jsonObject

字符串样式:{"属性1": value1, "属性2":value2}

java 复制代码
List<FactoryCheckPlanItemJson> factoryCheckPlanItemsJsonList = mapper.select(); 

String checkItemJsonString = JSONObject.toJSONString(factoryCheckPlanItemsJsonList);

2、List/Object转json字符串

// 适用于普通实体类和List

java 复制代码
FactoryCheckPlanItemJson a = new FactoryCheckPlanItemJson();

JSONObject.toJSONString(factoryCheckPlanItemsJsonList)

二、Vue前台的json转化

应用场景:

·前台对后台传递的json字符串解析为object用于展示

·前台的表单为object, 提交后转化为json字符串传递到后台

注:Array和Object使用语法一样

1、jsonString转实体类

JSON.parse(jsonString)

Eg:

javascript 复制代码
let questionOptions = []
if (response.data.checkItem) {
  let tmp = JSON.parse(row.checkItem);
  for (let key in tmp) {
    let a = {
      option: key, content: tmp[key]
    }
    questionOptions.push(a);
  }
  return questionOptions
}

2、实体类转jsonString

javascript 复制代码
JSON.stringfy(list)

JSON.stringfy(object)
相关推荐
哈喽,树先生32 分钟前
1.Seata 1.5.2 seata-server搭建
spring·springcloud
冯宝宝^1 小时前
基于mongodb+flask(Python)+vue的实验室器材管理系统
vue.js·python·flask
cc蒲公英2 小时前
Vue2+vue-office/excel 实现在线加载Excel文件预览
前端·vue.js·excel
森叶2 小时前
Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题
vue.js·electron·npm
小小竹子2 小时前
前端vue-实现富文本组件
前端·vue.js·富文本
青稞儿3 小时前
面试题高频之token无感刷新(vue3+node.js)
vue.js·node.js
小菜yh3 小时前
关于Redis
java·数据库·spring boot·redis·spring·缓存
程序员凡尘4 小时前
完美解决 Array 方法 (map/filter/reduce) 不按预期工作 的正确解决方法,亲测有效!!!
前端·javascript·vue.js
爱上语文5 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring