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對象來遍歷元素
