Jquery 是否将json对象数据转换为json数组数据?

Jquery 是否将json对象数据转换为json数组数据?,jquery,arrays,json,object,Jquery,Arrays,Json,Object,如何将json对象数据转换为json数组数据?比如说, 我在firebug上的控制台上有来自服务器的json对象数据 Object { 0={...}, 1={...}, 2={...}, more...} json字符串 { "items": { "0": { "pub_name": "News", "system_id": "57", "make_accessible": "0",

如何将json对象数据转换为json数组数据?比如说,

我在firebug上的控制台上有来自服务器的json对象数据

Object { 0={...}, 1={...}, 2={...}, more...}
json字符串

{
    "items": {
        "0": {
            "pub_name": "News",
            "system_id": "57",
            "make_accessible": "0",
            "count": "7",
            "router": "#/post/news/list/"
        },
        "1": {
            "pub_name": "upcoming events",
            "system_id": "134",
            "make_accessible": "0",
            "count": "7",
            "router": null
        }
    },
    "total": 2
}
{
    "items": [
        {
            "pub_name": "News",
            "system_id": "57",
            "make_accessible": "0",
            "count": "7",
            "router": "#/post/news/list/"
        },
        {
            "pub_name": "upcoming events",
            "system_id": "134",
            "make_accessible": "0",
            "count": "7",
            "router": null
        }
    ],
    "total": 2
}
我需要把它转换成

[Object { pub_name="Main", system_id="50", make_accessible="0", more...}, Object { pub_name="estate", system_id="122", make_accessible="0", more...}, Object { pub_name="wines", system_id="125", make_accessible="0", more...}, 7 more...]
json字符串

{
    "items": {
        "0": {
            "pub_name": "News",
            "system_id": "57",
            "make_accessible": "0",
            "count": "7",
            "router": "#/post/news/list/"
        },
        "1": {
            "pub_name": "upcoming events",
            "system_id": "134",
            "make_accessible": "0",
            "count": "7",
            "router": null
        }
    },
    "total": 2
}
{
    "items": [
        {
            "pub_name": "News",
            "system_id": "57",
            "make_accessible": "0",
            "count": "7",
            "router": "#/post/news/list/"
        },
        {
            "pub_name": "upcoming events",
            "system_id": "134",
            "make_accessible": "0",
            "count": "7",
            "router": null
        }
    ],
    "total": 2
}

有可能吗?

解决这一问题的最佳方法是修复它是如何在服务器端生成的,可能是将Items结构转换为使用任何服务器端语言的数组

但是,如果javascript是您唯一的选择,那么您所需要做的就是迭代将它们分配给数组的对象键

var jsonstring = '{\
    "items": {\
        "0": {\
            "pub_name": "News",\
            "system_id": "57",\
            "make_accessible": "0",\
            "count": "7",\
            "router": "#/post/news/list/"\
        },\
        "1": {\
            "pub_name": "upcoming events",\
            "system_id": "134",\
            "make_accessible": "0",\
            "count": "7",\
            "router": null\
        }\
    },\
    "total": 2\
}';

var data = JSON.parse(jsonstring);
console.log(data); // {items: Object, total: 2}

var tempArr = [];
for (key in data.items) {
    tempArr[key] = data.items[key];
}
data.items = tempArr;
console.log(data); // {items: Array[2], total: 2}

如果包含jQuery,则可以使用
$.makeArray()


是的,这是可能的。但是请注意,json与此无关。您需要迭代对象中的键,创建所需的数组。您将如何确定对象的元素名称?你从哪里得到“pub_name”和“system_id”?就因为这让我有点烦,根本没有“json对象”或“json数组”之类的东西。这些术语是不正确的。JSON是数据的传输格式(类似于CSV或XML)。JSON总是一个字符串。它可以表示对象或数组,但它本身始终是字符串。如果它不是字符串,就不是JSON。您拥有的是一个JavaScript对象和一个JavaScript数组。它可能是从JSON字符串中解析出来的,但它不是JSON。如果它有任何意义,请参阅我上面的编辑?@lauthiamkok:您首先是如何创建这个JSON字符串的?您可能已经能够以正确的格式将其返回给您。