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 に答える