間違った用語を使用していると思われますので、ご容赦ください。
API の JSON 出力を操作するために、musache.js を非常に効果的に使用しています。トップレベルの名前がないことを除いて、ほとんど同じように見える兄弟 API を使用しています。新しい JSON 出力を他の形式に調整して、mustache.js アプローチを引き続き使用できるようにする方法を見つけようとしています (これはオプションの中でより簡単なようです。もう 1 つは mustache.js 以外のものを使用しています。私は避けようとしている)。
mustache.js を使用して、最上位の名前「records」を使用して、次の JSON 本文を非常に簡単に反復処理できます。
{"records":
[{"dt_created":"08/23/2013 04:49:13 PM","created_by":"x, x","dt_updated":"08/23/2013 04:49:13 PM","updated_by":"x, x","field_60374": ["Project 67"],"field_60331":["Ability to adjust the number of lines dynamically based on the mood of the person 3 rows down, 4th cube, 11th building. A breakthrough in mind-control data processing."],"field_60333": [{"id":"x","first":"x","last":"x"}],"field_60394": [{"id":"x","first":"x","last":"x"}],"field_60414":["11"],"field_60375": ["22"],"field_60395":["A"],"record_id":"1920704","form_id":"10898"},
{"dt_created":"08/23/2013 04:47:45 PM","created_by":"x, x","dt_updated":"08/23/2013 04:47:45 PM","updated_by":"x, x","field_60374":["Project 2"],"field_60331":["Very cool project to allow more than a single invoice to be in an ERP at any one time. Quite a big leap forward."],"field_60333": [{"id":"x","first":"x","last":"x"}],"field_60394": [{"id":"x","first":"x","last":"x"}],"field_60414":["x, x"],"field_60375":["60"],"field_60395": ["A"],"record_id":"1920703","form_id":"10898"}],
"meta":{"total":2,"count":2}
}
トップレベルの名前がないため、繰り返し処理できない形式は次のとおりです。
[{"id":"x","user": {"id":"x","first_name":"x","last_name":"x"},"title":"Test Post 3","text":"This is an equally cool and enthralling post.","created_at":"2013-08-29T17:46:04.801Z","updated_at":"2013-08-29T17:46:04.804Z","num_comments":0,"num_likes":0},
{"id":"y","user": {"id":"212342277","first_name":"x","last_name":"x"},"title":"Test Post 1","text":"Super cool content you want to read!","created_at":"2013-08- 29T17:44:58.188Z","updated_at":"2013-08-29T17:44:58.190Z","num_comments":0,"num_likes":0}]
2 番目の JSON の例を最初の JSON の形式に変換するために、次のことを試しました。
$.ajax({
[…….],
success: function(json_data){
alert("success");
var template=$('#listPosts').html();
var stuff = {"records":json_data}; //here
var stuff = JSON.stringify(stuff); //here
alert(stuff);
//var html = Mustache.to_html(template, json_data);
var html = Mustache.to_html(template, stuff);
//$('.content-pane').empty();
$('#listOfPostsContainer').html(html);
}
}
var 'stuff' にあるものでポップアップするアラートがあり、最初の JSON の例のようにフォーマットされているようですが、mustache.js はそれを解析しません (mustache.js の実行を確認しました)。他の問題に対処する前に、上記の AJAX 呼び出し成功属性で JSON 配列に最上位の名前を追加する方法が正しいかどうか、または別の方法で行う必要があるかどうかを理解したいと思いました。
これを説明するのに役立つものが不足している場合は、お知らせください。追加できます。