1

これは、Jsonlint で検証されている私のローカル Json です。

{
"messages": {
    "count": "0",
    "items": [
        {
            "MessageID": "1",
            "Starred": 0,
            "BodyPrev": "You wouldn't believe what has just happenedYou wouldn't believe what has ",
            "FromUserID": "1",
            "FromName": "Daisy Purdye",
            "FromUN": "daisypurdye",
            "Subject": "Yeayeah",
            "Body": "You wouldn't believe what has just happenedYou wouldn't believe what has just happenedYou wouldn't believe what has just happenedYou wouldn't believe what has just happenedYou wouldn't believe what has just happenedYou wouldn't believe what has just happened",
            "Ctime": "10/4/2012",
            "isRead": "1"
        },
        {
            "MessageID": "2",
            "Starred": 1,
            "BodyPrev": "Whatever",
            "FromUserID": "1",
            "FromName": "Daisy Purdye",
            "FromUN": "daisypurdye",
            "Subject": "Not true mate",
            "Body": "Whatever",
            "Ctime": "5/3/2012",
            "isRead": "1"
        }
    ]
}

}

ここにメッセージを出力するためのjQueryがあります...

    <script>
    $.getJSON("/json/messages.json",function(result){
        $.each(result, function(i, messages){
            console.log(messages.items.Subject)
        });
      });
   </script>

未定義を返すだけです。

4

6 に答える 6

5

$.each配列を受け取る必要があり、メッセージの配列がresult.messages.items.

メッセージを反復処理するには、次のようにする必要があります

  $.getJSON("/json/messages.json",function(result){
    $.each(result.messages.items, function(i, message){
        console.log(message.Subject)
    });
  });
于 2012-10-08T12:39:00.763 に答える
0

プロパティは配列であるため、itemsを使用することはできませんitems.Subject

ルートオブジェクトのプロパティをループする代わりに、配列のアイテムをループします。

$.getJSON("/json/messages.json",function(result){
  $.each(result.messages.items, function(i, item){
    console.log(item.Subject)
  });
});
于 2012-10-08T12:41:17.083 に答える
0

ロジックに問題があるようです。これを試して:

<script>
        $.getJSON("/json/messages.json",function(result){
            $.each(result.items, function(i, item){
                console.log(item.Subject)
            });
          });
       </script>
于 2012-10-08T12:42:09.877 に答える
0

Items はそれ自体が配列であるため、少なくとも次のようにアクセスする必要があると推測しています。

messages.items[0].Subject
于 2012-10-08T12:39:21.473 に答える
0

アイテムは配列です。すべてのアイテムを取得するには、それを反復する必要があります。

 <script>
    $.getJSON("/json/messages.json",function(result){
        $.each(result, function(i, messages){
          $.each(messages.items, function(index, item){
                 console.log(item.Subject)
           });

        });
      });
   </script>
于 2012-10-08T12:39:47.933 に答える
0

あなたのオブジェクトはこの形で存在します

MainObj---> messages -----> items---->Subject

そのため、件名を印刷する必要がある場合は、それらが存在するのと同じ方法でアクセスする必要があります

result.messages.items.Subject
于 2012-10-08T12:46:31.460 に答える