js form表单转json字符串,json数组转json字符串出现多余的双引号问题解决

功能介绍

        页面展示的是一个用户的基本信息,和该用户对应的几台车辆的信息,车辆的字段属性都一样。然后可以编辑这些信息,再保存到后台。那么就需要考虑将车辆信息转换为json数组类型的字符串传到后台。也可以传入list但是我没有找到对应的方法。

具体实现

1. 后台回显

        我后台返回的是一个User对象和一个Vehicle的List集合。在页面展示时用户信息可以容易渲染,但是车辆信息就不好渲染了,还要考虑考虑到保存时的取值问题。我采用的是将每个车辆信息放在div中,遍历List<Vehicle>动态生成多个div,每个div保存一辆车的信息。div的id值使用【vehicle+当前list的索引】这样方便后面保存时获取每台车辆信息。

2. div中元素转json

        有两种方式:1.可以使用js原生的方式获取到每个车辆div中的元素,获取元素name和value,拼接成json字符串。2.可以使用jquery.serializejson.min.js,将车辆的信息放在各个form中,对form 使用序列化json。

3. json数组转json字符串(避免出现多余的双引号)

    //    模拟一个json 字符串;
        var jsonStr1 = '{"day":"2019-10-10","brank":"福特","color":"白"}';
        var jsonStr2 = '{"day":"2018-05-22","brank":"长安","color":"黑"}';
        var jsonStr3 = '{"day":"2017-06-30","brank":"比亚迪","color":"黑"}';

    //    下面是 将转换过程
    //    1. 先创建一个数组
        var arr = [];
    //    2. 将json字符串转变为json对象
        var json1 = JSON.parse(jsonStr1);
        var json2 = JSON.parse(jsonStr2);
        var json3 = JSON.parse(jsonStr3);

    //    3. 将json对象放入数组
        arr.push(json1);
        arr.push(json2);
        arr.push(json3);

    //    4: 将数组转为字符串
        var arrStr = JSON.stringify(arr);
    // arrStr : [{"day":"2019-10-10","brank":"福特","color":"白"},{"day":"2018-05-22","brank":"长安","color":"黑"},{"day":"2017-06-30","brank":"比亚迪","color":"黑"}]
        console.log(arrStr); 

4. 重点

1>. 首先是要创建一个数组对象。

2>. 数组对象中放入的是json对象,并不是字符串。最后对数组进行json字符串转换。

5. 编码过程中尝试过得错误写法

        网上大部分搜索到的是对json 先进行JSON.stringify()转换,或者对数组进行多次转换,这都会造成最后的结果出现多余的双引号,传入到后台不能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值