我试图使用以下代码创建一个json数组。
private JSONArray getJsonArray(String encodedString) {
JSONArray docArray = new JSONArray();
JSONObject docprops = new JSONObject();
JSONObject innerJson = new JSONObject();
JSONArray innerJsonArray = new JSONArray();
JSONObject inJobj = new JSONObject();
JSONArray outerJsonArray = new JSONArray();
SharedPreferences userDetails = getSharedPreferences("userdetails", Context.MODE_PRIVATE);
String session = userDetails.getString("session", "");
try {
innerJson.put("compliance_history_id", compliance_history_id);
docprops.put("file_size", fileSize);
docprops.put("file_name", fileName);
docprops.put("file_content", encodedString);
docArray.put(docprops);
innerJson.put("documents", docArray);
innerJson.put("completion_date", mCompletedDate.getText().toString());
innerJson.put("validity_date", JSONObject.NULL);
innerJson.put("next_due_date", mNextDueDate.getText().toString());
innerJson.put("remarks", mRemarks.getText().toString());
innerJsonArray.put("UpdateComplianceDetail");
innerJsonArray.put(innerJson);
inJobj.put("session_token", session);
inJobj.put("request", innerJsonArray);
outerJsonArray.put(session);
outerJsonArray.put(inJobj);
} catch (JSONException e) {
e.printStackTrace();
}
return outerJsonArray;
}
这是我的代码正在构建的json ..
[
"1-e4077f4a346440ecaeaf5f3387d47775",
{
"request": [
"UpdateComplianceDetail",
{
"remarks": "Remarks",
"next_due_date": "27-Mar-2016",
"completion_date": "31-may-2017",
"validity_date": null,
"documents": [
{
"file_name": "20160404_135811.jpg",
"file_size": 24,
"file_content": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mA"
}
],
"compliance_history_id": 49
}
],
"session_token": "1-e4077f4a346440ecaeaf5f3387d47775"
}
]
document
数组可能包含多个json对象。我怎么能这样做?答案 0 :(得分:1)
如果documents
是一个数组,则遍历JSONArray
对象
JSONArray jsonObjectArray= updateComplianceDetailresponse.getJSONArray("documents");
LinkedList arrayCompliance=new LinkedList();
for(int count=0;count<jsonObjectArray.length();count++){
// iterate and get required elements
//Add to arrayCompliance LinkedList
}
答案 1 :(得分:1)
如果docArray中可能有多个对象,则下面的行应该在for循环中。
JSONObject docprops = new JSONObject();
docprops.put("file_size", fileSize);
docprops.put("file_name", fileName);
docprops.put("file_content", encodedString);
docArray.put(docprops);
根据文档对象的数量,你可以迭代for循环,每次迭代创建一个jsonObject并将它放在docArray中