如何从JSON数组检索数据

how to retrieve data from JSON Array?

本文关键字:检索 数据 数组 JSON      更新时间:2023-09-26

这是我的json数据

{
"list":[{"rank":"1","fb_id":"12345","score":"3000"},
        {"rank":"2","fb_id":"12345","score":"2000"},      
        {"rank":"3","fb_id":"123456","score":"1000"},
        {"rank":"5","fb_id":"123456","score":"2500"}],
       "roundscores":[{"score1":"1000","pos1":"3","score2":"2500","pos2":"5"}]
}

从这个数据,我需要得到score1使用java脚本

我JS

$.ajax({
type: "POST",
url: "ajaxClassifica2.jsp",
data: "selectedLevel="+selectedLevel+"&fb_id="+123456,
success: function(data) {
        alert(data);
        var jsonlist = data.list;
        var jsonround = data.roundscores;
        alert(jsonlist); 
        alert(jsonround);
        var strBuild = "";
        $.each(jsonobj, function(index, names) 
        {
                strBuild ="<ul class='"livelli'">"
                            +" <div class='"social'"> "
                            +"  <a href='"#'"><img src='"images/ico_fb.png'"></a>"
                            +"  <a href='"#'"><img src='"images/ico_tw.png'"></a>"
                            +" </div>"
                            +" <li><strong>Round 1:</strong> " + names.roundscores.score1 + "</li>"
                            +" <li><strong>Posizione:</strong> " + names.roundscores.pos1 + " </li>"
                            +" </ul>"
                            +" <ul class='"livelli'">"
                            +" <div class='"social'"> "
                            +"  <a href='"#'"><img src='"images/ico_fb.png'"></a>"
                            +"      <a href='"#'"><img src='"images/ico_tw.png'"></a>"
                            +" </div>"
                            +" <li><strong>Round 2:</strong> " + names.roundscores.score2 + "</li>"
                            +" <li><strong>Posizione:</strong> " + names.roundscores.pos2 + "</li>"
                            +" </ul>";
        });
              }
    }); 

您可以使用JSON.parse,然后使用正常的JavaScript命名法访问它:

var obj = JSON.parse('{"list":[...]}');
obj.roundscores[0].score1 // 1000

另外,如果你使用的是没有JSON.parse API的旧浏览器,你可以使用填充,如JSON3

var json = '{ "list":[{"rank":"1","fb_id":"12345","score":"3000"},{"rank":"2","fb_id":"12345","score":"2000"},{"rank":"3","fb_id":"123456","score":"1000"},{"rank":"5","fb_id":"123456","score":"2500"}], "roundscores":[{"score1":"1000","pos1":"3","score2":"2500","pos2":"5"}] }';
var obj = JSON.parse(json);
var score1 = obj.roundscores[0].score1);

以免你的JSON数据是在变量"rawData"

var jData = JSON.parse(rawData);
alert(jData.roundscores[0].score1);

回顾这个例子可能会对您有所帮助

         var jsonText = '{"name":"Frodo","address":"Hobbiton, The Shire"}';
         var person = JSON.parse(jsonText);
         alert(person.name);