0

私はjQueryを初めて使用し、楽しみのために遊んでいます。ニーズに合わせて変更したいコードがいくつかありますが、現在のjsファイルはGoogleスプレッドシートからデータを取得し、各アイテムをオブジェクトとして返しています。サーバーからjQueryにデータを渡すためにjsonを使用していないので、jsonをオブジェクトに変換する方法を考えています。

それを行う現在の方法は(tabletopはグーグルドキュメントからデータを取得する彼らのjsプログラムの名前です):

Tabletop.init({
    key: timelineConfig.key,
    callback: setupTimeline,
    wanted: [timelineConfig.sheetName],
    postProcess: function(el){
        //alert(el['photourl']);
        el['timestamp'] = Date.parse(el['date']);
        el['display_date'] = el['displaydate'];
        el['read_more_url'] = el['readmoreurl'];
        el['photo_url'] = el['photourl'];
    }
});

ファイル全体にアラートを追加しましたが、これがデータを取得して渡す領域だと思います。オブジェクト内のアイテムをjsonのオブジェクトに置き換えて、何かが変わるかどうかを確認しようと考えていましたが、よくわかりません。通常、私はjson、hashmaps、listsを介して個々のアイテムを渡しますが、オブジェクトとの連携方法やオブジェクトへのアクセス方法はわかりません(リクエスト用に作成したURLを呼び出すだけです$("#user-history").load("/cooltimeline/{{ user.id }}");)。しかし、jsonデータをオブジェクトに変換したい場合はどこから始めればよいですか?

それが役立つ場合は、これが私がやろうとしていることのデモです(ただし、jsonデータを使用することによって)。

ps私は、自分がやろうとしていることを完了する方法の論理と、おそらく私が見逃しているいくつかのアイデアを探しているので、それらをグーグルで検索して学ぶことができます。

4

1 に答える 1

0

使用関数を使用しますJSON.parse(json):)またはjQuery.parseJSON(json)

var json = '{"a":2}';
var object = JSON.parse(json);

alert(object.a);

メッセージ付きのアラートが表示されます。2


私があなたのコメントを理解しているかどうかは本当にわかりませんが、たぶんあなたはこれをしたいだけです:

   postProcess: function(el){ //here el is JSON string
        el = JSON.parse(el); // now el is an object
        el.timestamp = Date.parse(el.date);
        el.display_date = el.displaydate;
        el.read_more_url = el.readmoreurl;
        el.photo_url = el.photourl;

        return el;

    }

ところで。標準名ではなく、既知のプロパティ名に角かっこを使用する必要はありません。

el['timestamp'] === el.timestamp

JSONを貼り付けると簡単になります

于 2012-07-30T22:18:46.187 に答える