servlet传递json格式字符串无法赋值

从servlet传递json格式字符串到小程序js文档中,但是无法通过JSON.parse(res.data)来赋值给全局对象

      success: function(res) { //res就是接收后台返回的数据

        // that.setData({
        //   tt: res.data,
        // })
        console.log("提前测试字符串:" + res.data + "----" + typeof(res.data));

        app.obj = JSON.parse(res.data);
        console.log("测试格式2: " + app.obj.ta_name + "~~~~~~" + typeof(app.aaa));
      },

报错:Unexpected token ' in JSON at position 11
我查了很多资料,说是单双引号的问题,但是我在servlet中无法全部都改成双引号,因为传递的是字符串,最外面必须要双引号。 其中app.obj是我在app.js中定义好的全局对象。
这个是我console.log出来的res.data的数据:

img

json格式里的参数最后不能有逗号

你细心观察你的json格式就知道有问题,
你截图里的
错误 "ta_number'":['2','3','4','5','6',]
正确 "ta_number'":['2','3','4','5','6'],最后参数不能有逗号

错误 "ta_city":['清楚','发功','温度','爱上','官方','一会',]
正确 "ta_city":['清楚','发功','温度','爱上','官方','一会']

最后的"ta_coordinate'":更离谱
’116.343356,39.562364‘ ‘116.359192,39.147312’
如果该参数之类116.343356是带有小数点为一组,这里的格式错的比较严重
正确应该是这样
’116.343356‘, ’39.562364‘ , ‘116.359192', '39.147312’
但是如果是两组为一对,应该在后端生成数据参数的时候对逗号转义处理