我有以下示例json文件:
{"jsonData":{"REC":[{"TEST":"T","TEST1":"T1","TEST2":"T2"},{"R":"R","R1":"R1","R3":"R3"}],
"DATA":{"FIRST":0,"SEC":1}}}.
我想从json文件中检索数据,我尝试如下,但它给出了null。
来自结果对象的:我正在检索如下数据:
要检索值T: this.jsonData.REC.TEST
要检索值R1: this.jsonData.DATA.FIRST
如果我做错了,请纠正我。
先谢谢。
答案 0 :(得分:1)
没有REC键有一个Object数组,所以它应该是:
对于值T:json.jsonData.REC[0].TEST
对于值R1:json.jsonData.REC[1].R1
Example Link
P.S:下次请使用代码标签,节日快乐! :)
答案 1 :(得分:0)
您应该使用getJSON方法在Ajax响应中解析此问题,或者如果使用Ajax,则应使用dataType作为json。在成功回调中,可以通过响应对象访问已解析的json结果。所以你应该使用像resp.jsonData.REC [0]这样的东西。测试不要使用它。
答案 2 :(得分:0)
如果json文件没有将对象分配给变量,那么我能想到的唯一方法是使用Ajax查询来读取文件的内容并按如下方式处理对象:
<强> jQuery的:强>
$.getJSON("<PATH_TO_YOUR_JSONFILE>",
function(data){
alert(jsonObj.jsonData.REC.TEST);
alert(jsonObj.jsonData.DATA.FIRST);
});
使用纯js:
var jsonObj = {};
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
eval("jsonObj = " + xmlhttp.responseText);
checkJson();
}
}
xmlhttp.open("GET","<PATH_TO_YOUR_JSONFILE>",true);
xmlhttp.send();
function checkJson()
{
alert(jsonObj.jsonData.REC.TEST);
alert(jsonObj.jsonData.DATA.FIRST);
}