0

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;
}
3
  • Possible dupe of: stackoverflow.com/questions/5618548/… Commented Jun 21, 2012 at 13:11
  • sorry if the way is not that pretty but I'm a beginner :D Commented Jun 21, 2012 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. Commented Jun 21, 2012 at 13:22

2 Answers 2

2

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()
Sign up to request clarification or add additional context in comments.

Comments

1

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);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.