JSON.parse 解析json字符串时,遇换行符报错

今天遇到后台返回的json字符串转对象时报错了,发现有个textarea提交的字段里有换行符。

错误原因:JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示

可以用str.replace(/\n/g,"\\\\n")转义,‘\\‘转成单个‘\‘,‘\\n‘转成‘\n‘,最后转成‘\\n‘这样就可以用parse转成对象时变为‘\n‘,取出的字符串设置到html文本中\n被解析为换行。

ECMA Script注明json字符串中需要转义的字符:

测试:

1.var kks="{"id":2,"name":null}"的reviver遍历前面两个是json字符串中的键值,空值暂时不知道是什么(原型Object?)。

2.json字符串有值为undefined解析会报错

2.JSON.stringify会忽略值为undefined的对象

语法规定:值undefined不包含在可以解析的范围内,所以会报错,哈哈。

参考:英文版ecma规范: http://www.ecma-international.org/ecma-262/5.1/

中文:http://lzw.me/pages/ecmascript/#611

时间: 2024-10-09 09:56:57

JSON.parse 解析json字符串时,遇换行符报错的相关文章

JSON.parse()解析该json字符串,特殊字符串引起报错

主要的特殊字符:英文(半角)状态的 单引号 ‘ 双引号"  斜杠 \  反斜杠 /  and符号&   大于号 >  小于号 <   空格 9个特殊符号,可以采取录入的时候进行控制,禁止输入.或者在存入数据库的时候进行转义.或者从数据库取出时候转义.或者在页面进行转义替换等方案. 涉及到:特殊字符可能对  数据库代码 js造成错误.所以要考虑 数据库特殊字符     编写语言特殊字符   html页面特殊字符等. 方案一.存入数据库前对数据进行转义 json串中包含特殊的字符

JSON parse eval 将字符串转换为json的异同

SON(JavaScript Object Notation)是一種輕量級的數據格式,采用完全獨立於語言的文本格式,是理想的數據交換格式.同時,JSON是Javascript原生格式,這意味着在javascript中處理JSON數據不需要任何特殊的API或工具包,而且效率非常高. JSON的結構如下: “名稱/值”對的集合(A collection of name/value pairs).不同的語言中,它被理解为對象(object),紀錄(record),結構(struct),字典(dicti

JSON.parse和JSON.stringify 参数详解

JSON.parse和JSON.stringify这两个浏览器自带(IE6/7除外)的方法平常我们经常用到,但是一般都只是用到了他们的第一个参数,比如字符串转对象:JSON.parse('{}')   对象转字符串:JSON.stringify({}) 今天特意看了下这两个方法的定义,第二个可选参数也是非常有用. 1. JSON.parse(text[, reviver]) text :     要被解析成JSON对象的字符串 reviver : 如果是一个函数,则规定了原始值如何被解析改造,在

浅谈JSON.parse()、JSON.stringify()和eval()的作用

相信大家对于JSON应该不陌生,度娘对这个名词的解释大致如下: “JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使JSON成为理想的数据交换语言,作用是易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率).” 今天在这里笔者想简单谈谈jquery里面的JSON.parse()和JSON.stringify()函数,顺便

有关javascript中的JSON.parse和JSON.stringify的使用一二

有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习最大的收获). 而对于依托json格式传输的数据,处理数据时,用到JSON.strinify和JSON.parse的概率是百分之百.使用这两个方法so easy,但是你真的知道其中一些相关的细节以及其中牵涉到的javascript的知识么? JSON.parse用于从一个字符串中解析出json对象.

JSON.parse() 和 JSON.stringify()的简单介绍

参考地址: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify 最近一段时间在测试前端页面的时候, 需要对后台数据进行处理, 后台返回的数据基本都是json格式, 这里就要用到

JSON.parse()、JSON.stringify()和eval()的作用

相信大家对于JSON应该不陌生,度娘对这个名词的解释大致如下: “JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使JSON成为理想的数据交换语言,作用是易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率).” 今天在这里笔者想简单谈谈jquery里面的JSON.parse()和JSON.stringify()函数,顺便

JSON.parse()和JSON.stringify() 用法

parse 从字符串解析出json对象: var data = '{"a":1,"b":2}'; JSON.parse(data); 返回Object a:1 b:2 _proto_:Object stringify从json对象解析出字符串: var data = {a:1,b:2} JSON.stringify(data) 返回: '{"a":"1","b":"2"}' JSON.p

JSON.parse与JSON.stringify

JSON:JavaScript Object Notation(JavaScript对象表示法):甚至我们就可以大致认为JSON就是Javascript的对象,只不过范围小上一些. JSON的MIME类型是"application/json" JSON.parse(text[,reviver]) []中的表示可选内容,reviver是一个函数,对象中每个成员都调用这个函数 JSON.parse()将JSON格式的字符串解析成JavaScript对象 1 var a='{"na