JS对象和JSON字符串相互转化总结

JS对象和JSON字符串相互转化总结在web开发中,一般情况下需要前端和服务器的交换数据,我们一般使用JSON来完成数据的传输,JavaScript操作的对象是一般是变量;因此我们需要将JSON字符串转换为JS变量,下面总结JS对象和JSON字符串相互转换的方法总结;变量区分//Json字符串varjson_str='{“name”:”xiao”,”age”:12}’;//JS对象(字符串常量法):varjs_obj=

在web开发中,一般情况下需要前端和服务器的交换数据,我们一般使用JSON来完成数据的传输,JavaScript操作的对象是一般是变量;因此我们需要将JSON字符串转换为JS变量,下面总结JS对象和JSON字符串相互转换的方法总结;

变量区分

//Json字符串
var json_str = '{"name":"xiao","age":12}';
//JS对象(字符串常量法):
var js_obj = {name: "xiao", age: 12};

//Josn对象:
var json_obj = {
  
  "name":"xiao","age":12};
//json数组:
var objArray = [{
  
  "name":"xiao","age":12}, {
  
  "name":"xiao","age":12}];

JSON对象和JS对象本质是一致的,至少内在表现形式是一样的,如下图所示:

这里写图片描述

JSON字符串->JS对象

JSON字符串转换为JS对象大致有三种,分别是eval()原生函数,JSON提供的Parse方法,以及new Function方法,下面一一测试。

  • eaval()函数
//需要增加一对括号,避免语法错误,该方法存在性能和安全方面的问题,不建议使用。
//方法一:
var json_obj_case1 = eval('(' + json_str+')');

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行,这是eval本身的问题。

  • Parse方法
//方法二:
var json_obj_case2 = json_str.parseJSON();
var json_obj_case3 = JSON.parse(json_str);
  • new Function()方法
//方法三:
var json_obj_case4 = (new Function("return " + json_str))();

以下是goole浏览器中转换的测试结果:

这里写图片描述

JS对象->JSON字符串

相反的,我们也会遇到需要将JS对象转换为字符串,传递给服务器,下面就是将JS对象转换为JSON字符串,有两种方法:

  • stringify函数
//方法一
var json_str_case1 = JSON.stringify(js_obj);
  • toJSONString函数
//方法二
var json_str_case2 = js_obj.toJSONString();

以下是JSON对象,JS对象转换为JSON字符串的测试结果:

这里写图片描述

今天的文章JS对象和JSON字符串相互转化总结分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25196.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注