错误原因:JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示
可以用str.replace(/\\n/g,"\\\\\\\\n")转义,\'\\\\\'转成单个\'\\\',\'\\\\n\'转成\'\\n\',最后转成\'\\\\n\'这样就可以用parse转成对象时变为\'\\n\',取出的字符串设置到html文本中\\n被解析为换行。
测试:
1.var kks="{"id":2,"name":null}"的reviver遍历前面两个是json字符串中的键值,空值暂时不知道是什么(原型Object?)。
2.json字符串有值为undefined解析会报错
2.JSON.stringify会忽略值为undefined的对象
语法规定:值undefined不包含在可以解析的范围内,所以会报错,哈哈。