2

我有这个 JSON(不知道它是字符串还是对象,你可能知道):

{
   "palvelut":[
      {
         "palvelu_id":"1",
         "palvelu_nimi":"Perusteita ja varmuutta juhlameikkiin\t",
         "palvelu_kuvaus":"Koulutus kestää 2h, jonka aikana käydään läpi hyvä meikkipohja, kasvojen korostus, poskipunan laitto, klassinen silmien ehostus ja hienostunut mutta simppeli huulimeikki. Suosittelemme että otat oman meikkipussisi sisältöineen mukaan, tai ainakin meikit joita haluat oppia käyttämään. ",
         "palvelu_hinta":"10"
      }
   ],
   "ajat":[
      {
         "aika_id":"1",
         "aika_kello":"14.00",
         "aika_paivamaara":"18.11.2013",
         "aika_paikkoja":"5",
         "aika_palvelu":"1"
      },
      {
         "aika_id":"4",
         "aika_kello":"16.30",
         "aika_paivamaara":"18.11.2013",
         "aika_paikkoja":"5",
         "aika_palvelu":"1"
      }
   ]
}

但我对此无能为力!无论我尝试什么,我都会得到未定义、[Object Object] 或什么都没有。

例如,如果我尝试使用来自 的数据向选择字段添加选项ajat,我将一无所获。

alert(json.ajat.aika_id);

警报未定义。

如何用 $.each 解析这个?

即使是最简单的例子也不会产生任何结果。

$.each(json, function (key, value) {
    alert(key + ": " + value);
});
4

3 回答 3

4

json.ajat包含一个数组(这就是方括号所代表的),所以你必须索引它:

alert(json.ajat[0].aika_id);

或者你可以循环它:

$.each(json.ajat, function(key, value) {
    alert(key + ": " + value);
});
于 2013-10-29T07:40:22.913 回答
0

如果它是一个字符串,你需要它来将它转换成一个对象:

json = eval('(' + json + ')');

当它是一个对象时,你会看到“json.ajat”是一个数组,所以“json.ajat.aika_id”不起作用;

使用 $.each:

$.each(json.ajat, function(){alert(this.aika_id + ':' + this.aika_kello)});
于 2013-10-29T07:45:04.583 回答
0

这是另一个用法示例,

var jsonObject = {
   "palvelut":[
      {
         "palvelu_id":"1",
         "palvelu_nimi":"Perusteita ja varmuutta juhlameikkiin\t",
         "palvelu_kuvaus":"Koulutus kestää 2h, jonka aikana käydään läpi hyvä meikkipohja, kasvojen korostus, poskipunan laitto, klassinen silmien ehostus ja hienostunut mutta simppeli huulimeikki. Suosittelemme että otat oman meikkipussisi sisältöineen mukaan, tai ainakin meikit joita haluat oppia käyttämään. ",
         "palvelu_hinta":"10"
      }
   ],
   "ajat":[
      {
         "aika_id":"1",
         "aika_kello":"14.00",
         "aika_paivamaara":"18.11.2013",
         "aika_paikkoja":"5",
         "aika_palvelu":"1"
      },
      {
         "aika_id":"4",
         "aika_kello":"16.30",
         "aika_paivamaara":"18.11.2013",
         "aika_paikkoja":"5",
         "aika_palvelu":"1"
      }
   ]
};

$.each(jsonObject.ajat, function(i,elem){
    console.log(i);
    console.log(elem);
});

其次是小提琴, http://jsfiddle.net/pQxRp/

于 2013-10-29T07:47:18.543 回答