Расшифруйте JSON с помощью JQuery - PullRequest
0 голосов
/ 04 апреля 2011

мои исследования в jquery оказываются немного разочаровывающими.

Я получаю следующий Json с сервера.

{"status":"ok",
"0":{"ID":"1","location":"location info"},
"1":{"ID":"2","location":"location info"},
"2":{"ID":"3","location":"location info"},
...etc
});

Мне нужно поместить все объекты, кроме статуса, вмассив.Я добился этого в AS3 следующим образом, но, похоже, я не смог приблизиться к нему с помощью jquery.

public function ResultToArray(jsonString:String):Array
{
var jObj:Object = JSON.decode(jsonString);
var objects:Array = [];
for each(var obj:Object in jObj)
{
    if(obj is String)break;
    objects.push(obj);
}
return objects;
}

Я хотел бы поместить каждый из объектов в массив.

Следующие только зацикливаются на одном объекте.

      $(data).each(function(index)
    {
    alert(data[index]["location"])  
    });

Прошу прощения за мое невежество.Если бы я мог получить какой-либо совет, я был бы очень признателен.

Ответы [ 3 ]

4 голосов
/ 04 апреля 2011

Если я хорошо понимаю, ваш JSON может быть улучшен, чтобы помочь вам здесь. Нужно хранить каждое местоположение как целочисленный индекс, начинающийся с нуля, почему бы не сохранить их в массиве JSON:

{
    "status":"ok",
    "locations":[
        { "ID":"1", "location":"location info"},
        { "ID": "2", "location": "location info" },
        { "ID": "2", "location": "location info" },
        ...etc
    ]
}

Затем с помощью jQuery все, что вам нужно сделать, - это проанализировать JSON и извлечь параметр location, который уже является массивом:

// Assume jsonString is retrieved from an AJAX call:
var locationObj = $.parseJSON(jsonString);
var locations = locationObj.locations;
2 голосов
/ 04 апреля 2011
var o = jQuery.parseJSON(jsonString),
        myObjects = [];
for (var c in o) {
    if (c != 'status')
        myObjects.push(o[c]);
}

Возможно, вы можете проверить (typeof o[c] == 'object'), если не хотите проверять «статус».

1 голос
/ 04 апреля 2011

Вы можете использовать jQuery.getJSON () для удаленного извлечения данных и превращения их в объект Javascript.

...