1

TLDR:

  1. この質問から始めて、一部が機能し、ここで続行した後、単純化しました。
  2. JSON配列を「GET」する必要があります
  3. 正しくフォーマットし、配列内のそれぞれを対応する DIV に配置します。
  4. ??
  5. できます。

これは、簡素化して続行するためのこの質問のフォローアップです。

配列から複雑な JSON データが必要です。それには、タイトルとその価値が必要です。私がこれを行っている理由は、配列が何と呼ばれているかを知っているが、その中で生成されているデータを知らないからです。

この新しい配列が次のようになっているとしましょう。

{
  "Days": [{
      "day": "Sunday",
      "time": "10.00"
    },
    {
      "day": "Monday",
      "time": "12.00"
    },
    {
      "day": "Tuesday",
      "time": "09.00"
    },
    {
      "day": "Wednesday",
      "time": "10.00"
    },
    {
      "day": "Thursday",
      "time": "02.00"
    },
    {
      "day": "Friday",
      "time": "05.00"
    },
    {
      "day": "Saturday",
      "time": "08.00"
    }
  ]
}

(Matthew Flaschen) のおかげで修正されました

日曜日と10.00を取得するだけでなく、他のすべてのものも同じにする必要があります。

現時点でこれを解析する私のコードは次のとおりです。

$.getJSON(url,
  function(data) {
    $.each(data, function(i, item) {
      $('.testfield').append('<p>' + item + '</p>');
    });
  });

各日付に時間を追加しないと、次のようにデータが解析されます。

Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday

配列の日付に時間が追加されると、Firebug はそれを JSON 文字列として認識しなくなります。だから私はここで何か間違ったフォーマットをしたと推測しています。また、新しいラインに乗るには毎日と時間が必要だと思いました

$('.testfield').append('<p>' + item + '</p>' + '<br />');

それぞれを新しい行に適用したはずですが、うまくいきませんでした。

  1. 毎日またはアイテムを新しい行に入れるにはどうすればよいですか?
  2. $getjson を取得して、日とその値を div に正しく解析するにはどうすればよいですか?
4

3 に答える 3

2

これを試してください(再フォーマットされたJSON-次回JSONLintでJSONを確認してください):

{
    "Days": [
        {
            "Sunday": "10.00",
            "Monday": "12.00",
            "Tuesday": "09.00",
            "Wednesday": "10.00",
            "Thursday": "02.00",
            "Friday": "05.00",
            "Saturday": "08.00" 
        }
    ]
}

それを操作するためのスクリプト:

 $.getJSON( url, function(data){
  $.each(data.Days[0], function(key,value){
   $('.testfield').append('<p>' + key + ' : ' + value + '</p>');
  });
 });
于 2010-04-29T05:55:00.790 に答える
1

これは有効な JSON ではありません。次のようにします。

{"Days":
[{"day": "Sunday", "time": "10.00"},
 {"day": "Monday", "time": "12.00"},
 {"day": "Tuesday", "time": "09.00"},
 {"day": "Wednesday", "time": "10.00"},
 {"day": "Thursday", "time": "02.00"},
 {"day": "Friday", "time": "05.00"},
 {"day": "Saturday", "time": "08.00"}
]}

構文をチェックするには、常にJSONLintまたは別のバリデーターを使用してください。

于 2010-04-29T05:44:02.110 に答える
0

少し話題から外れていますが、内容がはっきりしない場合は、安全な方法を使用してDOMにデータを挿入する必要があります。それ以外の場合、コードにはXSSの脆弱性があります。

また、セキュリティの問題であることに加えて、「Foo Bar <foo.bar@example.com>」などのデータは、(おそらく)希望どおりにレンダリングされません。

たとえば、jQuery text()メソッドを使用できます。

$('.testfield').append($('<p></p>').text(item));
于 2010-04-29T05:51:54.653 に答える