JS中Json字符串和Json对象相互转化的方法

前提

Json在前端页面返回给后台数据处理已经占据很大的比例,在这里做出一些总结。
Json字符串和Json对象示例:
1.Json对象

var jsonobj={
       	   "name":"summer",
       	   "age":20,
       	  "school":["小学","中学","大学"]
       }

2.Json字符串

var jsonstr = '{
       	   "name":"summer",
       	   "age":20,
       	  "school":["小学","中学","大学"]
       }'

注意:
前端与客户端交互,传值一般是通过JSON字符串传值的,而不是JSON对象,查看一个前端给的JS是JSON字符串
!!!

JSON字符串与JSON对象相互转化

方式一.jQuery插件

.jQuery插件支持的转换方式:

var jsonobj = $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

或者

var jsonobj = jsonstr .parseJSON(); //由JSON字符串转换为JSON对象

使用该方法对json字符串的要求比较高,必须符合json格式,属性名和属性值必须使用双引号。

方式二.Javascript

.Javascript支持的转换方式:

var jsonobj = eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
//或者
var jsonobj = eval("(" + jsonstr + ")");

eval最好用来转换简单的字符串,如果含有表达式,或者对象之类的复杂json串,不建议使用eval()。
eval()的速度非常快,但可以编译以及执行任何javaScript程序,所以会存在安全问题。
需要使用更安全的json解析器。在服务器不严格的编码在json或者如果不严格验证的输入,就有可能提供无效的json或者载有危险的脚本,在eval()中执行脚本,释放恶意代码。

方式三.浏览器支持的转换方式

浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

var jsonobj = JSON.parse(jsonstr); //可以将json字符串转换成json对象 
var jsonstr= JSON.stringify(jsonobj); //可以将json对象转换成json对符串 

特别的:
ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

方式四.JSON官方

JSON官方的转换方式:

var jsonobj = JSON.parse(jsonstr);//使用parse()转换为json对象,
var jsonstr= JSON.stringify(jsonobj );//使用 stingify()将对象转换为字符串;

json.js里面的方法:

对象转为字符串:通过JSON.encode方法
字符串转换为对象:使用JSON.decode方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值