У меня есть функция, которая получит массив JSON с объектами. В функции я смогу циклично выполниться через массив, получить доступ к свойству и использовать то свойство. Как это:
Переменная, которую я передам функции, будет похожа на это:
[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]
function test(myJSON)
{
// maybe parse my the JSON variable?
// and then I want to loop through it and access my IDs and my titles
}
Какие-либо предложения, как я могу решить его?
Это не один объект JSON. У вас есть массив объектов JSON. Вам нужно сначала выполнить цикл по массиву, а затем получить доступ к каждому объекту. Возможно, вам поможет следующий пример:
var arrayOfObjects = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];
for (var i = 0; i < arrayOfObjects.length; i++) {
var object = arrayOfObjects[i];
for (var property in object) {
alert('item ' + i + ': ' + property + '=' + object[property]);
}
// If property names are known beforehand, you can also just do e.g.
// alert(object.id + ',' + object.Title);
}
Чтобы узнать больше о JSON, ознакомьтесь с этой статьей.
Обновление: если массив объектов JSON на самом деле передается как обычная строка, то вам действительно понадобится eval()
здесь.
var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
Под "массивом JSON, содержащим объекты", я полагаю, вы подразумеваете строку, содержащую JSON?
Если да, то вы можете использовать безопасный var myArray = JSON. parse(myJSON)
метод (либо родной, либо включенный с помощью JSON2), либо безопасный var myArray = eval("(" + myJSON + ")")
. Обычно eval следует избегать, но если вы уверены, что содержимое безопасно, то проблем нет.
После этого вы просто выполняете итерацию по массиву как обычно.
for (var i = 0; i < myArray.length; i++) {
alert(myArray[i].Title);
}
Ваш вопрос кажется немного неполным, но я думаю, что вы ищете способ сделать ваш JSON доступным для вашего кода:
если у вас есть строка JSON, как указано выше, то вам просто нужно сделать вот это
var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');
затем вы можете получить доступ к этим vars с помощью чего-то вроде jsonObj[0].id и т.д.
Дайте мне знать, если это не то, что вы хотели сказать, и я постараюсь помочь.
M