Javascript 使用jQuery处理JSON数据

Javascript 使用jQuery处理JSON数据,javascript,jquery,json,Javascript,Jquery,Json,我对json有一个小问题 //real json var json1 = {"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"}; alert(json.test1); // will echo TEST1 //string, so javascript treat it like a String not JSON var json2 = "{"test1":"TEST1","test2":"TEST2","test3

我对json有一个小问题

//real json
var json1 = {"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"};
alert(json.test1); // will echo TEST1
//string, so javascript treat it like a String not JSON
var json2 = "{"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"}";
alert(json2.test1); // wrong
现在我想你知道我的意思了,有什么函数或方法可以将类似json的字符串转换成实际的json吗?

你可以使用eval()函数:

var real_json = eval(json2);
您可以使用eval()函数:

var real_json = eval(json2);

使用jQuery有一种非常简单的方法:

var jsonObj = jQuery.parseJSON(jsonString);
当然,这不需要jQuery,您也可以用它完成同样的事情:

var jsonObj = JSON.parse(jsonString);

理论是这样的,您也可以查看页面。

使用jQuery有一种非常简单的方法:

var jsonObj = jQuery.parseJSON(jsonString);
当然,这不需要jQuery,您也可以用它完成同样的事情:

var jsonObj = JSON.parse(jsonString);

理论是,您也可以查看页面。

假设您的字符串实际有效,例如(注意单引号)

使用


假设您的字符串实际有效,例如(注意单引号)

使用


检查这也是JSON解析的另一种方式

var json2 = "{"+'"test1"'+":"+'"TEST1"'+","+'"test2"'+":"+'"TEST2"'+","+'"test3"'+":"+'"TEST3"'+","+'"test4"'+":"+'"TEST4"'+"}";

      var jsonObj = $.parseJSON(json2);
      alert(jsonObj.test1);

检查这也是JSON解析的另一种方式

var json2 = "{"+'"test1"'+":"+'"TEST1"'+","+'"test2"'+":"+'"TEST2"'+","+'"test3"'+":"+'"TEST3"'+","+'"test4"'+":"+'"TEST4"'+"}";

      var jsonObj = $.parseJSON(json2);
      alert(jsonObj.test1);

我尝试了这种方法,但它显示语法错误意外标记:Try
eval(“(“+json2+”)”)
。并确保在代码中正确转义了
json2
字符串(示例中没有)。eval会打开一个很大的安全漏洞,因为它将处理任何javascript代码。如果传递的字符串不是json,则可能会导致问题。我尝试了这种方法,但它显示语法错误意外标记:Try
eval(“(“+json2+”)”)
。并确保在代码中正确转义了
json2
字符串(示例中没有)。eval会打开一个很大的安全漏洞,因为它将处理任何javascript代码。如果传递的字符串不是json,则可能会导致问题//更改为json1警报(json1.test1);//将echo TEST1这与jQuery有什么关系?因为我认为在jQuery中必须有一种方法来解决这个问题,而jQuery.parseJSON就是这种方法@DidierGhys我知道,即使你在编码时也应该非常小心……有时这也会给你一个错误……。检查一下我的回答的另一种方式,在你的第一次代码警报中,var json1={“test1”:“test1”,“test2”:“test2”,“test3”:“test3”,“test4”:“test4”}//更改为json1警报(json1.test1);//将echo TEST1这与jQuery有什么关系?因为我认为在jQuery中必须有一种方法来解决这个问题,而jQuery.parseJSON就是这种方法@DidierGhys我知道,即使你在编码时也应该非常小心……有时这也会给你一个错误……。看看我回答的另一种方式