js之将字符串转换成json的三种方式

//1,js自带的eval函数,其中需要添加小括号eval('('+str+')');

function strToJson(str){ 
var json = eval('(' + str + ')'); 
return json; 
}

//2,new Function形式

function strToJson(str){ 
var json = (new Function("return " + str))(); 
return json; 
}

//3,全局的JSON对象

function strToJson(str){ 
return JSON.parse(str); 
}

 

 

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下

 代码如下:

var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。

 

补充:如果是在java中就好办了,根本用不上JsonObcjec之类,牛人都是用String拆分和拼凑

 

相关知识,

JSONObject

构造方法如下:

JSONObject();创建一个空的JSONObject对象

JSONObject(boolean isNull);创建一个是否为空的JSONObject对象

普通方法如下:

fromBean(Object bean);静态方法,通过一个pojo对象创建一个JSONObject对象

fromJSONObject(JSONObject object);静态方法,通过另外一个JSONObject对象构造一个JSONObject对象

fromJSONString(JSONString string);静态方法,通过一个JSONString创建一个JSONObject对象

toString();把JSONObject对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

 

 

JSONArray:A JSONArray is an ordered sequence of values.

是一个final类,继承了Object,实现了JSON接口

构造方法如下:

JSONArray();构造一个空的JSONArray对象

普通方法如下:

fromArray(Object[] array);静态方法,通过一个java数组创建一个JSONArray对象

fromCollection(Collection collection);静态方法,通过collection集合对象创建一个JSONArray对象

fromString(String string);静态方法,通过一个json格式的字符串构造一个JSONArray对象

toString();把JSONArray对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

 

 

posted @ 2015-08-23 11:48  爱跳舞的程序员  阅读(36694)  评论(0编辑  收藏  举报