结果为 : [1,2,3,4]

String s="1,1,2,3,4";
ArrayList<Object> list = new ArrayList<>();
list.add(s);
String s = JSON.toJSONString(list);

结果为 : ["1","2","3","4"]

String s="1,1,2,3,4";
        List<String> list = Arrays.asList(s.split(","));
        String s1 = JSON.toJSONString(list);
        System.out.println("s1 = " + s1);


结果为 : 1,1,2,3,4

public static void main(String[] args) {
String  s ="[\"1\",\"1\",\"2\",\"3\",\"4\"]" ;
System.out.println(s);  //["1","1","2","3","4"]String s2 = s.replaceAll("\\[|\\]", "");
String teststr2 = s2.replace("\"","" );System.out.println(teststr2);   //1,1,2,3,4

}


参数:[{"value":"220v","key":"电压"}]

后端

<!-- 阿里JSON解析器 -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version>
</dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.12</version>
</dependency>

1先定义一个对象

@Data
public class PareameterDTO {private String key;private String value;
}

2 将json转为对象给前端

@Override
public List<AppGoodsSpec> selectAppGoodsSpecList(AppGoodsSpec appGoodsSpec) {List<AppGoodsSpec> appGoodsSpecs = appGoodsSpecMapper.selectAppGoodsSpecList(appGoodsSpec);for (AppGoodsSpec goodsSpec : appGoodsSpecs) {String parameter = goodsSpec.getParameter();if (StringUtils.isNotEmpty(parameter)) {List<PareameterDTO> pareameterDTOList = JSONArray.parseArray(parameter, PareameterDTO.class);goodsSpec.setPareameterDTOList(pareameterDTOList);}}return appGoodsSpecs ;
}

1 先遍历  2 显示 3添加和删除按钮

<el-form-item label="参数" prop="parameter"><div style="display: flex;align-content: center;margin-bottom: 20px"v-for="(dict,index) in form.pareameterDTOList">
    <el-input placeholder="请输入内容" style="margin-right: 10px" v-model="dict.key"/><el-input placeholder="请输入内容" v-model="dict.value"/>  <el-button @click="delTags(index)" icon="el-icon-delete" style="margin-left: 40px" type="text"></el-button> <br> </div><el-button @click="addTags(form.key,form.value)" icon="el-icon-plus" size="mini" type="primary">添加</el-button>
</el-form-item>

前端显示

<el-table-column align="center" label="参数"><template slot-scope="scope">
<span v-for="(item,index) in scope.row.pareameterDTOList">{{item.key}}-{{item.value}}<br>
</span></template>
</el-table-column>
methods: {//添加标签addTags(key, value) {// if (key == null && value == null) {//   this.$modal.msgError('请输入标签')//   return false// }
    let obj = {}obj.key = keyobj.value = valuethis.form.pareameterDTOList.push(obj)},//删除标签
  delTags(index) {this.form.pareameterDTOList.splice(index, 1)},
}

修改 回显判断是空的话,赋值一个空数组 ,不然新增是push 空 报错

/** 修改按钮操作 */
handleUpdate(row) {this.reset();const goodsSpecId = row.goodsSpecId || this.idsgetAppGoodsSpec(goodsSpecId).then(response => {  if (response.data.pareameterDTOList == null) {response.data.pareameterDTOList = []}this.form = response.data;this.open = true;this.title = "修改商品规格";});
},

后端  1先获取接收到的集合,判断 k v 是否未空 ,然后c存到一个新对象中,转为json串 存数据库

@Override
public int updateAppGoodsSpec(AppGoodsSpec appGoodsSpec) {List<PareameterDTO> pareameterDTOList = appGoodsSpec.getPareameterDTOList();if (pareameterDTOList.size()>0) {List<PareameterDTO>  pareameterDTOS = new ArrayList<>();for (PareameterDTO pareameterDTO : pareameterDTOList) {if (StringUtils.isNotEmpty(pareameterDTO.getKey()) && StringUtils.isNotEmpty(pareameterDTO.getValue()) ) {pareameterDTOS.add(pareameterDTO);}} String s = JSONUtil.toJsonStr(pareameterDTOS);appGoodsSpec.setParameter(s);}return appGoodsSpecMapper.updateAppGoodsSpec(appGoodsSpec);
}

需要定义

pareameterDTOList: [],

对象数组转JSON数组

List<CardListVO> list=new ArrayList<>();

//对象

list.add(new CardListVO);
String jsonString= JSON.toJSONString(list);

{"merchantName":"12"}

public static void main(String[] args) {CardListVO cardListV = new CardListVO();cardListV.setMerchantName("12");String jsonString = JSON.toJSONString(cardListV);System.out.println(jsonString);
}

2023- 4-19  优化

<el-form-item label="电话" prop="phone"><div style="display: flex;align-content: center;margin-bottom: 20px"v-for="(dict,index) in pareameterDTOList"><el-input placeholder="请输入名称" style="margin-right: 10px" v-model="dict.key"/><el-input placeholder="请输入电话" v-model="dict.value"/><el-button @click="delTags(index)" icon="el-icon-delete" style="margin-left: 40px" type="text"></el-button><br></div><el-button @click="addTags(key,value)" icon="el-icon-plus" size="mini" type="primary">添加</el-button>
</el-form-item>
return {pareameterDTOList: [],value: null,key: null,
}
methods: {//添加标签addTags(key, value) {// if (key == null && value == null) {//   this.$modal.msgError('请输入标签')//   return false// }let obj = {}obj.key = keyobj.value = valuethis.pareameterDTOList.push(obj)},//删除标签delTags(index) {this.pareameterDTOList.splice(index, 1)},

}

回显

/** 修改按钮操作 */
handleUpdate() {this.reset()const id = 1getCmsContactUs(id).then(response => {this.form = response.datathis.mapform = [response.data.lng, response.data.lat, response.data.address]if (response.data.phone) {  this.pareameterDTOList =   JSON.parse(response.data.phone)}this.open = truethis.title = '修改联系我们'})
},

提交

/** 提交按钮 */
submitForm() {this.$refs['form'].validate(valid => {if (valid) {/*经度*/this.form.lng = this.mapform[0]/*纬度*/this.form.lat = this.mapform[1]//地图名称// this.form.address = this.mapform[2];if (this.form.lng == null || this.form.lng == '' || this.mapform.length == 0) {this.$modal.msgWarning('请选择地图位置')return}if (this.form.id != null) {if (this.pareameterDTOList && this.pareameterDTOList.length > 0) {    this.form.phone = JSON.stringify(this.pareameterDTOList)}updateCmsContactUs(this.form).then(response => {this.$modal.msgSuccess('修改成功')this.open = falsethis.getList()})} else {addCmsContactUs(this.form).then(response => {this.$modal.msgSuccess('新增成功')this.open = falsethis.getList()})}}})
},

对象转JSON 参数 kv相关推荐

  1. json对象转为url参数_Day48_Ajaxamp;Json

    <Java自学180天笔记> AJAX概念 1.概念:ASynchronous JavaScript And XML 异步的JavaScript和XML 2.实现方式 <html l ...

  2. @RequestBody接收Json参数 | 用自定义注解对Vo对象中Date类型日期格式校验

    标题太长有木有?主要是为了把问题描述清楚,免得进错文章. 问题描述 昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题. 要求输入的日期格式是:yyyy-MM-dd HH:mm:ss,Vo ...

  3. Junit、Json和kv结构的相互转化

    导包代码所在网站:https://mvnrepository.com/ 一.Junit 在prom.xml中导入代码,刷新下载 <!-- https://mvnrepository.com/ar ...

  4. js中自定义对象、json对象、json字符串、普通js对象 --js学习那本书上的

    4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...

  5. js中自定义对象、json对象、json字符串、普通js对象

    4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...

  6. 小程序 url 对象转字符串编码传参 url 字符串转对象解码接收参数

    url 对象转字符串编码传参 let info = encodeURI(JSON.stringify(this.data.info));wx.navigateTo({url: '/pages/part ...

  7. Java中普通字符串转json_java普通对象和json字符串的互转

    一.java普通对象和json字符串的互转 java对象---->json 首先创建一个java对象: 现在java对象转换为json形式: 定义了一个Student的实体类,然后分别使用了JS ...

  8. jackson json转对象 对象转json

    一,Jackson使用示例 第1步:创建ObjectMapper对象. 创建ObjectMapper对象.它是一个可重复使用的对象. ObjectMapper mapper = new ObjectM ...

  9. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

最新文章

  1. 检查点重做检查点队列简单总结Strut2教程-java教程
  2. 非托管资源在虚拟机中的管理
  3. ExtJS2.0实用简明教程 - Column列布局
  4. python图像识别车票_是程序员就用Python查12306的票
  5. [Linux] Linux指令汇总(持续更新中...)
  6. 一个SAP老司机多年的中间件使用心得
  7. 百炼成钢!自己动手写一个深度学习框架!
  8. cad结构字体_如何让CAD字体完整起来,且不破坏系统字体
  9. magento如何在首页显示产品
  10. 51nod1432 独木舟
  11. CakePHP中文手册【翻译】-ACL
  12. mx350显卡天梯图_2019.8月CPU和显卡性能天梯图
  13. 6678-GPIO基础(1)
  14. 互联网日报 | 6月13日 星期日 | 腾讯开展“饭圈乱象”专项整治;端午档单日放映场次刷新纪录;湖北取消除武汉外落户限制...
  15. python输入一个整数_Python中实现输入一个整数的案例
  16. Web of Science的正确打开方式
  17. verilog学习笔记:简单的数据选择器modelsim仿真
  18. AVR单片机开发6——AVR单片机串口Proteus调试注意事项
  19. SGI STL的rb_tree浅析
  20. 如何用excel做一份好看的年度业绩报告,让领导满意呢?

热门文章

  1. phpemspro模拟考试无试题_GitHub - maosea0125/phpems: PHPEMS在线模拟考试系统
  2. VSCode: 快速生成 html 骨架和在浏览器中打开
  3. 如何看待海淀某互联网公司让员工住在公司?(爆公司信息)
  4. 基于matlab的摄影测量后方交会元素解算
  5. OS相关驱动 Linux USB驱动框架分析
  6. 【细碎知识1】浮点数的规格化
  7. idea跳到下一个断点_不看会后悔系列之idea的使用小技巧
  8. openCV 轮廓查找-测量物体尺寸
  9. remote HEAD refers to nonexistent ref, unable to checkout
  10. 【关于Linux中----信号】