Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I'm trying to save a json in a javascript array but I don't understand how to do it. I don't want to save all the content in the first element of the array. That's my function:

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 is the array that I'd like to contain my json file.

My json could be something like:

{

"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"
        ]
    }
]

}

How can I save it in my array?

PS I don't have problems like "same origin policy" because the json file is on the same server (for now I'm working with local files. Could I work with files that are not on the same domain?).

PS Is it possible to use json as a javascript object (like an array)? If I want to search something in my json object how can I do it?

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;
}
share|improve this question
    
Possible dupe of: stackoverflow.com/questions/5618548/… –  SomeKittens Jun 21 '12 at 13:11
    
sorry if the way is not that pretty but I'm a beginner :D –  Gabriel Butoeru Jun 21 '12 at 13:21
    
Welcome to Stackoverflow! Remember to upvote all useful answers, including those to others' questions. And choose/select the best answer to your own questions. –  Larry K Jun 21 '12 at 13:22

2 Answers 2

up vote 1 down vote accepted

Your incoming JSON is not an array; it is a JSON structure (in Javascript, the same as an object). So it can not be directly stored as an array.

The json does include an array as the cards element. -- Do want that?

You need to

  1. Parse the incoming JSON into a JS structure. (Use JSON.parse.)
  2. Once you have the structure in Javascript:

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

Also note that the modern way to declare an empty array is

var onionarray = [];  

// not
var onionarray = new Array()
share|improve this answer

use the browser methods JSON.parse() and JSON.stringify() to convert your json to a javascript object and back.

In your case, onionarray should not be an array but rather an object (In fact arrays and objects are >pretty< similar in javascript). You can assign your jsondata like that:

onionarray = JSON.parse(data);
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.