今天在工作中有一个场景,就是要前端需要的json格式的字符串存入数据库,后面通过后端接口去请求解析,但是之前的前端的json字符串值直接写死在js文件中的,字符串很长,而且json字符串的 key 是没有双引号的,后端根本解析不了,如下:

String str = "{title: \"测试1\", phone: [\"11011011011\"], fax: [\"12345678\"]}";
JSONObject jsonObject = JSONObject.parseObject(str);

这样子会报错:

com.alibaba.fastjson.JSONException: error parse

原因是json格式错误

后来我想了一下,能不能直接在前端的直接解决这个问题呢,按 F12 进入开发者模式,点击 console 进入前端控制台,
如下:

var str = {title: "测试1", phone: ["11011011011"], fax: ["12345678"]}

这里要用到浏览器自带的 json 对象

var json = JSON.stringify(str);
console.log(json)

生成的json字符串:

{"title":"测试1","phone":["11011011011"],"fax":["12345678"]}

这个json字符串后端是可以直接解析的

JSON 对象还有另外一个方法:JSON.parse
这个方法可以把 json 字符串转化为 json 对象

var json = JSON.parse('{"title":"测试1","phone":["11011011011"],"fax":["12345678"]}')

更多推荐

前端的json字符串怎么转化为后端的json字符串