4

単純化された配列が機能するようになりました。以下を参照してください

解析する複雑な配列のフォローアップについては、こちらを参照してください。


TLDR :配列から各見出しを取得し、Jquery - getJSON を使用して div 内にあるものを知らずに div に挿入したい。

編集:データは、新しいデータで数秒ごとに JSON 文字列を出力しているソフトウェアから来ているため、以下の例のように「d」内のデータの配列をプルする必要があります。したがって、それぞれに「タイトル」と「034324324」などを取得する必要があります。

Edit2コードを更新して、私のものと正確に一致させました..

私はJSON配列を持っています:

{
  "Days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
}

そして、それを各「タイトル」として解析してdivに挿入したいと思います。

の線に沿って試す

function getdata() {
31 $.ajaxSetup ({ cache: false}); //<!-- Stops IE from caching data //-->
32 
33 $.getJSON(testurl, function(data) {
34 $.each(data.days, function(i,item){
35 $('#testfield').append('<p>' + item + '</p>');
36
37 });
38 }); 

無駄に。

私は他の場所で Getjson を使用していますが、自分が行っている要求がわかっている場合に使用します。例えば:

$('#name').html(data.Projectname);

これはすべて完全に正常に機能していますが、この場合、配列の内部に何があるかを知らずに配列から詳細を取得する必要があります。ここで欠落しているか間違っている単純なものがあると確信しています^^

私が現在取り組んでいる JSON は次のようになります。

{"Projectname":"ertyofhj","Projectid":"aqwertyuqw","Projecttitle":"ertyofhj"}

配列は、配列の内容を知らずにデータを引き出す方法に過ぎませんでした。

私はさらに追加し続けます。firebugまたはIEのデバッガー(Aargh)をデバッグするとヒットします

33 $.getJSON(testurl, function(data) {

それから

38 });

完全にスキップ

34 $.each(data.days, function(i,item){

- GET リクエストは正常に起動し、正しい JSON 文字列を返します。しかし、今では $.each を埋めることはありません。特定の文字列を具体的に要求したとしてもです。 上記のメモで、Firebug は、JSON としてフォーマットされていないことも教えてくれますか?

元の JSON 文字列をより単純なものに変更しました。(曜日) そのままの曜日がロードされます。だから私はどこかに行きます。しかし、もっと複雑な配列を呼び出せるようにする必要があります。たとえば、(日を使用して)毎日表示する必要がある特定の時間があり、また、毎日が新しい行にある必要があります " + '< br />' を追加しようとしましたが、それも機能しません. 次のような配列で表示されます。

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

そして、すべての人にデイネームと時間を引っ張る必要があります。

4

3 に答える 3

2
$.getJSON(url,
    function(data){
      $.each(data.items, function(i,item){
      $('#testfield').html('<p>' + item.d.title + '</p>');
      });
    });

このコードでは、'testfield' の ID を持つアイテムの HTML を値で何度も置き換えることになります... jQuery.appendを使用して、上記で指定したすべてのエントリを追加してみてください。

$.getJSON(url,
    function(data){
      $.each(data.items, function(i,item){
      $('#testfield').append('<p>' + item.d.title + '</p>');
      });
    });
于 2010-04-29T03:23:40.067 に答える
1

JSONデータにエラーがあります。最後の3つの項目で「d」の後にコロンを使用していません。これは、アプリケーションが使用している実際のデータの例ですか、それとも問題を示すためのサンプルデータですか?

于 2010-04-28T07:37:08.113 に答える
1

この例があなたを正しい方向に導くことを願っています


<html>
<head>
  <title>Stackoverflow</title>
  // ** POINT THIS TO A VALID jquery.js LOCATION
  <script src="jquery.js" type="text/javascript"></script>
  <script>
    var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
    // *****************************************************
    // This is your data from getJSON if correctly formatted
    var data = '{"Days":[ {"Sunday":"10.00"}, {"Monday":"12.00"}, {"Tuesday":"09.00"}, {"Wednesday":"10.00"}, {"Thursday":"02.00"}, {"Friday":"05.00"}, {"Saturday":"08.00"}]}';
    runUpdate = function() {
      // *******************************************************
      // Clear the div of all data by replacing it
      $('#testfield').replaceWith('<div id="testfield"></div>');
      var dataObject= $.parseJSON( data );
      $.each( dataObject.Days, function (index, value) {
        // ********************************************
        // Append new elements to the newly created div
        $('#testfield').append("<p>"+days[index]+": "+value[ days[index] ]+"</p>");
      });
    };

    runReset = function() {
      $('#testfield').replaceWith('<div id="testfield">This is original text.</div>');
    };
  </script>
</head>
<body>
  <div id="testfield">
    This is original text.
  </div>
  <div>
    <input type="button" value="Run Update" onclick="runUpdate();" />
    <input type="button" value="Reset" onclick="runReset();" />
  </div>
</body>
</html>
于 2010-04-29T17:34:47.707 に答える