如何使用javascript从json获取数组元素

时间:2014-05-21 12:17:10

标签: javascript php jquery json

我正在尝试从我的json字符串中提取数组。请帮我。我有以下javascript代码,

function lookup(inputString,autoSuggestionsList,TextFieldName)
{
   autoSuggestionsListMain=autoSuggestionsList;
   inputTextField=TextFieldName;
   if(inputString.length == 0)
   {
      $('#suggestions').hide();
   }
   else
   {
      $.post("show_location_hint.php", 
            { queryString: ""+inputString+"" }, 
            function(data) { if(data.length >0) {  } });
   }
}

我的show_location_hint.php文件将回显以下json字符串

{"root": {"success":"1","message":"","data":{"locations":[a,b,c]}}}

如何从阵列位置获取元素? 请帮我 感谢

3 个答案:

答案 0 :(得分:2)

您可以使用JSON.parse()将其解析为数组:

var dataArray = JSON.parse(jsonString)

然后只需简单地做:

alert(dataArray.root.message)

答案 1 :(得分:1)

试试这个:

$.post("show_location_hint.php", { queryString: inputString }, function(data) {
    if (data) {
        var locations = data.root.data.locations;
    }
});

但请注意,您的JSON格式无效,因为abc应该用双引号括起来。我猜这只是你实际数据的一个样本。

答案 2 :(得分:0)

首先你的json很好。它应该是:

{"root": {"success":"1","message":"","data":{"locations":["a","b","c"]}}}

你可以使用jQuery获取这样的数据:

var data = {"root": {"success":"1","message":"","data":{"locations":["a","b","c"]}}};

console.log(data.root);

console.log(data.root.success);

console.log(data.root.data);

$.each(data.root.data,function(index,item){

       console.log(item);

       });

Fiddle DEMO