2012-06-21 3 views
0

Я пытаюсь сохранить json в массиве javascript, но я не понимаю, как это сделать. Я не хочу сохранять весь контент в первом элементе массива. Это моя функция:Сохранить json в массиве javascript

function jeyson() 
{ 
var onion = new XMLHttpRequest(); 
onion.open("GET", "json.json", true); 
onion.send(null); 

/* var anotheronion = angular.fromJson(onion.responseText, false); */ 

    var onionarray = new Array() 

} 

onionarray является массив, который я хотел бы, чтобы содержать мой файл JSON.

Мой JSON может быть что-то вроде:

{ 

"count": 2, 
"e": 1, 
"k": null, 
"privateresult": 0, 
"q": "surname", 
"start": 0, 
"cards": [ 
    { 
     "__guid__": "efd192abc3063737b05a09a311df0ea0", 
     "company": false, 
     "__title__": "name1 surname", 
     "__class__": "entity", 
     "services": false, 
     "__own__": false, 
     "vanity_urls": [ 
      "name1" 
     ] 
    }, 
    { 
     "__guid__": "01917cfa71a23df0a67a4a122835aba8", 
     "photo": { 
      "__own__": false, 
      "__title__": null, 
      "__class__": "image", 
      "__guid__": "01917cfa71a23df04d03f83cb08c11e1" 
     }, 
     "company": false, 
     "__title__": "name2 surname", 
     "__class__": "entity", 
     "services": false, 
     "__own__": false, 
     "vanity_urls": [ 
      "name2" 
     ] 
    } 
] 

} 

Как я могу сохранить его в своем массиве?

PS У меня нет проблем как «такая же политика происхождения», потому что json-файл находится на одном сервере (на данный момент я работаю с локальными файлами. Могу ли я работать с файлами, которые не находятся в одном домене?).

PS Можно ли использовать json как объект javascript (например, массив)? Если я хочу найти что-то в своем json-объекте, как я могу это сделать?

function geisson() 
{ 
var iabile = new XMLHttpRequest(); 
iabile.open("GET", "json.json", true); 
iabile.send(null); 

var objectjson = {}; 
objectson = JSON.parse(iabile.responseText); 
alert(objectson.cards.toSource()); 
return false; 
} 
+0

Возможные контратип : http://stackoverflow.com/questions/5618548/convert-json-array-to-javascript-array – SomeKittens

+0

извините, если это не так, но я новичок: D –

+0

Добро пожаловать в Stackoverflow! Не забудьте перечислить все полезные ответы, в том числе вопросы других. И выберите/выберите лучший ответ на свои вопросы. –

ответ

1

Ваш входящий JSON не является массивом; это структура JSON (в Javascript, то же, что и объект). Поэтому он не может быть непосредственно сохранен как массив.

В состав json входит массив как элемент cards. - Хочешь этого?

Вы должны

  1. Разобрать входящие JSON в структуру JS. (Использование JSON.parse.)
  2. После того как вы структуру в Javascript:

    incoming = JSON.parse(data); 
    onionarray = incoming.cards; 
    

Также обратите внимание, что современный способ объявить пустой массив является

var onionarray = []; 

// not 
var onionarray = new Array() 
1

использовать методы браузера JSON.parse() и JSON.stringify() для преобразования JSON в JavaScript Object и обратно.

В вашем случае onionarray не должен быть массивом, а скорее объектом (на самом деле массивы и объекты> довольно < аналогичны в javascript). Вы можете назначить свою jsondata следующим образом:

onionarray = JSON.parse(data); 
Смежные вопросы