详细解释JavaScript中js对象和JSON格式字符串之间的转换
首先,让我们看看JS中的jsON格式字符串
Var JSONStr1=' { \ ' name \ ' : '张三\ ' } ';注意下面写的不是js中的jsON格式字符串,它只是一个JS字符串。
Var JSONStr2='{'name' : '张三' } ';让我们看看JSON语法中字符串的定义:它是任意数量的Unicode字符的集合,用双引号括起来,并用反斜杠转义。字符是单个字符串。
让我们看看如何在JS中将jsON格式字符串转换成JS对象。(
var jsobj 3=eval('(' jsonstr 1 ')');var jsobj 4=JSON . parse(jsonstr 1);推荐第二种方法。具体原因请参考http://www.json.org.cn/resource/json-in-javascript.htm
另外,这两种方法转换的一个js对象应该是“一个JSON数据格式”,也就是说它的属性是带引号的,这只是我的猜测,因为如果JSON格式字符串表示如下:
Var JSON STR1=' {\' f [name] \' : '张三\ ' } ';那么转换后的js对象的属性一定要加引号,因为JS对象的属性只能用字母、数字、下划线和$符号来表示,不能加引号,其他符号属性一定要加引号,所以在JS对象的文字表示中引用属性没有错。另外,如果jsON格式的字符串如上所示,那么转换后的JS对象就不能使用JSOBJ4。f[name]但jsObj4['f[name]']因为特殊字符,这一点要注意。如果读者对我的猜测有异议,可以给我。
让我们看看js对象和JS中的jsON格式字符串之间的转换。下面我准备了几组js对象来说明:
输入类型='button '值=' test button 1 ' onclick=' testJson();'/script type=' text/JavaScript '//(1)这是一个js对象var jsobj 1={ name : ' Zhang San ' }/(2)这是一个内部有方法的js对象。Var jsObj2={name :' Zhang San ',func : function(){ alert(' hello ');}} //(3)这是一个符合JSON数据格式的JSON对象。var jsonObj={'name' : '张三',' age' : 10,'备注' : {'high' :170,Address ' : ' beijishi ' }//js数组对象var jsArray=[{name : '张三' },{'age' : 10}]函数测试JSON(){ varjsonstr 1=JSON . stringfy(jsobj 1);var jsonstr 2=JSON . stringify(jsobj 2);var jsonstr 3=JSON . stringify(jsonObj);var jsonstr 4=JSON . stringify(jsArray);警报(jsonstr 1);警报(jsonstr 2);警报(jsonstr 3);警报(jsonstr 4);}查看项目符号框中的内容:
(1) (2)
(3) (4)
(1)、(3)、(4)的执行结果表明,JSON解析器的stringify()函数对js对象是否为fou、是否符合JSON格式没有限制,可以将JS对象转换为jsON格式字符串。
(2)的执行结果表明,如果JS对象中没有jsON值(如函数和undefined),它们将被排除。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:详细解释JavaScript中js对象和JSON格式字符串之间的转换是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。