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

时间:2023-03-09 17:28:35
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对象来遍历元素