如何使用jquery处理多个json对象

时间:2017-02-22 15:11:08

标签: javascript jquery json

我正在开发一个前端和后端分开的网站。我使用jquery发送请求并将结果作为json对象获取:

{
  "item": [

  ],
  "shop": [

  ],
  "user": [
    {
      "user_id": "9",
      "full_name": "Minh Duc",
      "email": "nguyenminhduc1803@gmail.com",
      "fb_link": "https:\/\/www.facebook.com\/SieuNhan183",
      "user_name": "Duc",
      "password": "37cd769165eef9ba6ac6b4a0fdb7ef36",
      "level": "0",
      "admin": "0",
      "dob": "1996-03-18",
      "location": "Ho Chi Minh",
      "user_image_url": null
    }
  ]
}

现在我找到了一种从对象用户那里获取数据的方法。我怎么能用javascript做到这一点?

3 个答案:

答案 0 :(得分:3)

补充@arcs的答案,请记住,在Javascript中,您可以使用点表示法(data.user[0].user_id)或方括号表示法访问对象的成员。这样:

data['user'][0]['user_id']

这很有用,因为你可以拥有一个'class'数组,然后执行以下操作:

['item', 'shop', 'user'].forEach((array) => processArray(data[array][0]));

然后你可以只过滤一些类或做更高级的东西

答案 1 :(得分:2)

当你有数据时(例如它在data中),使用点符号来获取用户的节点。

用户是一个数组,因此请使用[]访问单个元素,例如[0]

var data = {
  "item": [

  ],
  "shop": [

  ],
  "user": [
    {
      "user_id": "9",
      "full_name": "Minh Duc",
      "email": "nguyenminhduc1803@gmail.com",
      "fb_link": "https:\/\/www.facebook.com\/SieuNhan183",
      "user_name": "Duc",
      "password": "37cd769165eef9ba6ac6b4a0fdb7ef36",
      "level": "0",
      "admin": "0",
      "dob": "1996-03-18",
      "location": "Ho Chi Minh",
      "user_image_url": null
    }
  ]
}


console.log( data.user[0].user_id )

答案 2 :(得分:0)

我更喜欢使用这样的方括号:

$jsonObject["user"][0]["user_id"]

但您可以像这样使用点:

data.user[0].user_id

是一回事。

如果你想检查属性是否存在,你可以这样做:

if(typeof $jsonObject["user"] !== 'undefined'){
  //do domethings as typeof $jsonObject["user"][0]["user_id"] 
}

如果你想通过dinamically获得财产,你可以这样做:

const strId = "id";
const strName = "name";

//get user_id
let user_id = $jsonObject[user][0]["user_" + strId ];
//get user_name
let user_name = $jsonObject[user][0]["user_" + strName];

但是并不是很漂亮。