如何使用Javascript从JSON对象获取特定数组?

时间:2017-03-11 22:03:04

标签: javascript json

我正在使用facebook JS SDK,它以JSON格式返回用户的信息。我知道如何获得响应,如response.email返回电子邮件地址。但是如何从嵌套数组对象中获取元素?示例:用户的教育历史记录可能包含多个数组,每个数组都有一个元素,例如" name" "学校"。我想从对象的最后一个数组中获取元素。

这是我得到的样本JSON: -

"education": [
{
  "school": {
    "id": "162285817180560",
    "name": "Jhenaidah** School"
  },
  "type": "H**hool",
  "year": {
    "id": "14404**5610606",
    "name": "2011"
  },
  "id": "855**14449421"
},
{
  "concentration": [
    {
      "id": "15158**968",
      "name": "Sof**ering"
    },
    {
      "id": "20179020**7859",
      "name": "Dig**ty"
    }
  ],
  "school": {
    "id": "10827**27428",
    "name": "Univer**g"
  },
  "type": "College",
  "id": "9885**826013"
},
{
  "concentration": [
    {
      "id": "108196**810",
      "name": "Science"
    }
  ],
  "school": {
    "id": "2772**996993",
    "name": "some COLLEGE NAME I WANT TO GET"
  },
  "type": "College",
  "year": {
    "id": "1388*****",
    "name": "2013"
  },
  "id": "8811215**16"
}]

我想说我想从最后一个数组中获取"name": "some COLLEGE NAME I WANT TO GET"。如何用Javascript做到这一点?我希望我能解释一下我的问题。谢谢

4 个答案:

答案 0 :(得分:2)

这是JsFiddle Example

var json = '{}' // your data;

// convert to javascript object:
var obj = JSON.parse(json);

// get last item in array:
var last = obj.education[obj.education.length - 1].school.name;
// result: some COLLEGE NAME I WANT TO GET

答案 1 :(得分:1)

如果上面的json已保存到名为json的对象,则可以使用以下内容访问学校名称"some COLLEGE NAME I WANT TO GET"

json.education[2].school.name

答案 2 :(得分:1)

如果您知道该元素的位置,那么您可以通过调用

选择它
var obj = FACEBOOK_ACTION;
obj.education[2].school.name

如果您想选择特别是最后一个元素,请使用以下内容:

obj.education[ obj.education.length - 1 ].scool.name

答案 3 :(得分:0)

试试这个,

if (myData.hasOwnProperty('merchant_id')) {
    // do something here
}

其中JSON myData是:

{
    amount: "10.00",
    email: "someone@example.com",
    merchant_id: "123",
    mobile_no: "9874563210",
    order_id: "123456",
    passkey: "1234"
}

这是一个简单的例子供您理解。在嵌套对象的场景中,循环遍历JSON数据并使用hasOwnProperty检查密钥name是否存在。