0

プロジェクトで週カレンダー ( https://github.com/themouette/jquery-week-calendar/wiki ) を使用しており、言語は ruby​​ on rails ですが、JSON データを weekcalendar に返す ruby​​ コードの JSON オブジェクトに問題があります。 .js ファイル。JSONオブジェクトを2次元配列としてJSON配列形式にJSONエンコードする方法は?

このコードを参照してください:

data : function(start_at,end_at,callback) { 
    $.post('/events', { 

     },
        function(result){ \\this function is a receive JSON object from ruby
        console.log(data); 
        getEventData(result)
     },'json');        
  }

これは、console.log(data) による JSON オブジェクトです。

[Object { created_at="2013-03-12T11:08:34Z",  end_at="2013-03-12T00:00:00Z",  event_description="wqe",more...}, Object { created_at="2013-03-12T11:08:41Z",  end_at="2013-03-12T00:00:00Z",  event_description="wqe",  more...}, Object { created_at="2013-03-12T11:10:26Z",  end_at="2013-03-13T00:00:00Z",  event_description="ewr",  more...}, Object { created_at="2013-03-12T11:15:39Z",  id=4,  updated_at="2013-03-12T11:15:39Z"}, Object { created_at="2013-03-12T11:16:45Z",  id=5,  updated_at="2013-03-12T11:16:45Z"}, Object { created_at="2013-03-12T11:17:21Z",  id=6,  updated_at="2013-03-12T11:17:21Z"}, Object { created_at="2013-03-13T05:13:39Z",  id=7,  updated_at="2013-03-13T05:13:39Z"}, Object { created_at="2013-03-14T08:11:50Z",  id=8, ...}] 

わかりました、私はJSONオブジェクトを持っています、今関数getEventData(data)、私はjQuery.parseJSON(data)をします; JSONオブジェクトをエンコードしますが、結果はありません。

これを見てください:

function getEventData(data) {
      var eventData = jQuery.parseJSON(data);
      console.log(eventData);
      /*return {
         events:[
            {
               "id":eventData.id,
               "start": eventData.start,
               "end": eventData.end,
               "title": eventData.name,

            }
         ]
      };*/

結果 console.log(eventData); NULL です。

わかりました。有効な状態に戻すために、JSON オブジェクトを 2 次元配列として JSON 配列形式に JSON エンコードする方法。すべてのアイデアに感謝し、私の英語力に申し訳ありません。

4

1 に答える 1

1

最初の関数にもエラーがあります。console.log(data) を呼び出してから、変数の結果で関数を呼び出します。

すでにオブジェクトであるため、jQuery.parseJSON を使用する必要はないと思います。これはドキュメントがparseJSONについて述べていることです:

Description: Takes a well-formed JSON string and returns the resulting JavaScript object.

データは既に解析済みの json (オブジェクト) であるため、解析せずに json 形式を直接使用できます。

したがって、コードは次のようになります。

data : function(start_at,end_at,callback) { 
  $.post('/events', { 

  },
    function(data){ \\this function is a receive JSON object from ruby
    console.log(data); 
    getEventData(data)
  },'json');        
}

function getEventData(data) {
  var events = new Array();
  $.each( data, function( key, value ) {
    events.push({
           "id":value.id,
           "start": value.start,
           "end": value.end,
           "title": value.name,

        });
  });
  return events;
}
于 2013-03-15T12:00:00.353 に答える