如何通过JSON数组获取值,如查询

时间:2011-11-18 05:00:18

标签: jquery html json

抱歉我的英文。 我有一个Json数组:

"computers":
[
    {
        "id": 1,
        "type": "laptop",
        "manufactor":
        [
            {
                id: "m_1",
                name: "HP"
            },
            {
                id: "m_2",
                name: "Sony"
            }
        ] 
    },
    {
        "id": 2,
        "type": "desktop",
        "manufactor":
        [
            {
                id: "m_3",
                name: "Apple"   
            },
            {
                id: "m_4",
                name: "Tiger"   
            }
        ] 
    }
]

你能告诉我怎么能这样做:加载计算机数据>>获得2个计算机ID 1和2>>选择计算机ID = 1>>加载该计算机的制造商。 我可以使用mysql查询,但在json我不知道如何做到这一点。 谢谢你的建议!

编辑:我想从上面的JSON对象中检索ID为1的计算机的制造商。

感谢大家帮助我。 我打算创建一个使用JSON的页面,看起来像DOJOX滚动列表,你能给我一些例子或建议怎么做吗? 谢谢你:D

4 个答案:

答案 0 :(得分:6)

使用:

computers[0].manufactor[0].name

将返回“HP”。

如果您将其更改为:

computers[0].manufactor[1].name

你会得到“索尼”。

进一步改为:

computers[1].manufactor[0].name

将返回“Apple”。

最后:

computers[1].manufactor[1].name

返回“老虎”。

在此处查看有关如何使用Javascript操作JSON对象的more信息。

答案 1 :(得分:4)

假设给定的JSON数据在var data = {your give json string here};中,并且您想要从computers访问data数组。

使用

访问数组computers
alert(data.computers);

要访问制造商,请使用以下命令:

for (var i in data.computers){
var id= i.id; /*returns id*/
var type = i.type;/*returns type*/
var manufactor = i.manufactor;/*returns munufactor i.e. an array*/
/*MANUFACTOR IS ARRAY SO YOU MAY USE*/
for (var j in manufactor){
    var m_name = j.name; /*returns manufactor's name*/
    var m_id = j.id; /*returns manufactor's id*/
}}

如果阵列中有未知数量的计算机和制造商,则使用此选项。

答案 2 :(得分:1)

计算机[1] .ID 阅读更多:http://www.json.org/fatfree.html

答案 3 :(得分:0)

var jsonData = yourJsonData;
//Looking through computers
for(var i = 0; i<jsonData.computers.length; i++)
{
var id= jsonData.computers[i].id; // Get Id
var type = jsonData.computers[i].type; // Get Type
var manufacturers = jsonData.computers[i].manufactor; // Get manufacturers array
//Looking through manufacturer in computers
for (var j=0; j< manufacturers.length; j++ ){
   var manufacturer_id = manufacturers[j].id;   // Get manufacturer's Id
   var manufacturer_name = manufacturers[j].name;  // Get manufacturer's name
  }
}