JSON.stringify将JSON数组对象转换成字符串,每个字符前多出了一个"\r"字符

图片说明
如图, 红色标识的是json数组对象,蓝色标识的转换后的结果图片说明补充一下,发生奇怪现象的是一个form表单的input标签的value属性图片说明序列化之后使用JSON.stringify

问题解决了, 特来还愿:

我原来使用的jquery版本是3.2.1, 这个版本在序列化form表单的时候把标签的value属性序列化上了"\r"字符,
换成截止目前最新的3.4.1版本的jquery问题就解决了,
这个bug困扰了我十天, 吃不下饭睡不着觉, 快死的时候终于解决了. 愿大家少走弯路

\r是回车,本身是不可见的,是不是你的原始的json就有,排查下。

遍历,正则替换,JSON.stringify

试了下,我的没有出现你那种问题

图片说明

1.推测是serializeArray()序列化表单时,把\r转换进去了,可以尝试换下数据的封装方式,或者不用这个序列化的方法。
2.可以遍历,用String.replace重新构造数组,把有问题的字段替换。
3.可以用JSON.stringify(json, replacer)两个入参的形式处理

JSON.stringify( temp, function(k,v){
     if (k == "value") return "Do something...";
} );