に文字列として内部JSONArrayを変換します:JSONObject.toString()は以下のように私は、JSONリクエストを作成していますアンドロイド
JSONObject request = new JSONObject();
request.put("ID", "35");
request.put("password", "password");
List<JSONObject> fieldList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
fieldList.add(new JSONObject()
.put("unitid", "unitid " + i)
.put("price", "Price " + i));
}
request.put("unitsummary", new JSONObject()
.put("unitsummarydetail", fieldList)
);
String requestString = request.toString();
requestString
変数の値は、次のようになります。
{
"ID": "35",
"password": "password",
"unitsummary": {
"unitsummarydetail": [
{
"price": "Price 0",
"unitid": "unitid 0"
},
{
"price": "Price 1",
"unitid": "unitid 1"
},
{
"price": "Price 2",
"unitid": "unitid 2"
}
]
}
}
しかし、それは次のとおりです。
{
"ID": "35",
"password": "password",
"unitsummary": {
"unitsummarydetail": "[{\"unitid\":\"unitid 0\",\"price\":\"Price 0\"}, {\"unitid\":\"unitid 1\",\"price\":\"Price 1\"}, {\"unitid\":\"unitid 2\",\"price\":\"Price 2\"}]"
}
}
それは文字列としてunitsummarydetail
に変換されます。 私は試しましたが、インターネット上に同様の問題や解決策が見つかりませんでした。 私のコードに問題はありますか?これはライブラリの動作ですか?
任意のアイデアやソリューションコードスニペットを歓迎します。
ありがとうございました。あなたはすべてのJSONをunitsummarydetail JSON配列を作成して追加することができ
から
request.put("unitsummary", new JSONObject()
.put("unitsummarydetail", fieldList));
へ
request.put("unitsummary", new JSONObject()
.put("unitsummarydetail", new JSONArray(fieldList)));
あなたの最初のJSON形式は –
あなたのフィールドリストがJSONArray –