私は Android アプリケーションと、Restify.js と MongoJS を使用して Android アプリケーションとの間でデータを保存する Node.js を備えたサーバーを持っています。
今のところ、私は Android から JSONArray を使用しています (ただし、私の場合は、元の lib に基づく json-simple lib です)。JSONObjects を含む JSONArray があります (json-simple lib からも)。
私の場合、 JSONObject は次のとおりです。
{
"PLACE_NAME":"Paris",
"COLOR_ID":"2131099684",
"LIST_DATES":["2014-05-23","2014-05-22","2014-05-21"]
}
ここでの私のポイントは、明らかに同じアーキテクチャを尊重する多くの JSONObjects を持っていることです: 場所名、色 ID、および日付のリストです。
その後、この JSONObjects を JSONArray に格納しています。私が持っているJSONOBjectの数だけループで、そのように単純です:
myJsonArray.add(myJsonObj);
したがって、私の JSONArray の内容は次のとおりです。
[
{
"PLACE_NAME":"Paris",
"COLOR_ID":"2131099684",
"LIST_DATES":["2014-05-23","2014-05-22","2014-05-21"]
},
{
"PLACE_NAME":"Milan",
"COLOR_ID":"2131099667",
"LIST_DATES":["2014-05-14","2014-05-16","2014-05-15"]
}
// ... and it goes on and on
]
これまでのところ、そのデータ アーキテクチャは非常にうまく機能していました。なぜなら、ファイルに格納でき、json-simple lib の JSONArray のおかげで、ファイルを簡単に解析できる組み込みのパーサーを使用できるからです。
したがって、ファイルに保存されている JSONArray からすべての JSONObjects を取得したい場合は、次のように簡単です。
final FileReader fr = new FileReader(homeActivitySavesPath.getAbsolutePath());
final JSONParser parser = new JSONParser();
this.jsonArray = (JSONArray) parser.parse(fr);
if (this.jsonArray.size() >= 1) {
for (int i = 0; i < this.jsonArray.size(); i++) {
final JSONObject jsonObject = (JSONObject)this.jsonArray.get(i);
// ... doing some logical code to restore data
}
}
私は JavaScript がまったく新しいので、この種の JSONArray を解析するのに苦労しています。
解析方法を理解するために、Android アプリケーションから HTTP 接続を介して送信している POST 要求の内容を出力します。
console.log("リクエストパラメータの内容 -> %s", request.params);
そして、私はそれを取得します:
リクエストパラメータの内容 -> [object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]
明らかに
[オブジェクト オブジェクト]
前述の JSONObject は正しいですか?
では、この種の JSONArray をループできる JavaScript のループをどのように作成しますか?
各 JSONObject を MongoDB コレクションに個別に保存したいと思います。
助けてくれてありがとう!