0

我正在尝试将 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;
}
4

2 回答 2

2

您传入的 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()
于 2012-06-21T13:19:22.963 回答
1

使用浏览器方法JSON.parse()并将JSON.stringify()您的 json 转换为 javascript 对象并返回。

在你的情况下,onionarray不应该是一个数组,而是一个对象(实际上数组和对象在 javascript 中是 >pretty< 相似的)。您可以像这样分配您的 jsondata:

onionarray = JSON.parse(data);
于 2012-06-21T13:11:11.653 回答