我只能在这张图片的左侧添加jsonobj和json obj
但如果我想添加像右手这样的数据,我应该将哪些代码添加到我的代码中 (我想知道如何具体添加我要添加的json数组的标题) (来自ThinkTwiceCodeOnce的信用代码) 我的代码是......
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
new PostDataTask().execute("http://<myip4:port>/api/status");
}
class PostDataTask extends AsyncTask<String, Void, String> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Inserting data...");
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
try {
return postData(params[0]);
} catch (IOException ex) {
return "Network error !";
} catch (JSONException ex) {
return "Data Invalid !";
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
mResult.setText(result);
if (progressDialog != null) {
progressDialog.dismiss();
}
}
private String postData(String urlPath) throws IOException, JSONException {
StringBuilder result = new StringBuilder();
BufferedWriter bufferedWriter = null;
BufferedReader bufferedReader = null;
try {
//Create data to send to server
JSONObject dataToSend = new JSONObject();
dataToSend.put("name", "puggy");
dataToSend.put("like", "dog");
dataToSend.put("eat", "meat");
dataToSend.put("fav", "red balloon");
//Initialize and config request, then connect to server.
URL url = new URL(urlPath);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(10000 /* milliseconds */);
urlConnection.setConnectTimeout(10000 /* milliseconds */);
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true); //enable output (body data)
urlConnection.setRequestProperty("Content-Type", "application/json");// set header
urlConnection.connect();
//Write data into server
OutputStream outputStream = urlConnection.getOutputStream();
bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
bufferedWriter.write(dataToSend.toString());
bufferedWriter.flush();
//Read data response from server
InputStream inputStream = urlConnection.getInputStream();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line).append("\n");
}
} finally {
if (bufferedReader != null) {
bufferedReader.close();
}
if (bufferedWriter != null) {
bufferedWriter.close();
}
}
return result.toString();
}
}
答案 0 :(得分:1)
使用select order_id from ordertable where cust_id in
将个人资料dataToSend.put("profile", JSONArrayProfile)
添加到JSONArray
。
这是工作代码。试试这个:
JSONObject
<强>输出:强>
try {
JSONObject dataToSend = new JSONObject();
// Profile
JSONArray jsonArrayProfile = new JSONArray();
// Post 1
JSONObject jsonObjectPost1 = new JSONObject();
jsonObjectPost1.put("fbname", "Think Twice Code Once");
jsonObjectPost1.put("content", "felling full");
jsonObjectPost1.put("likes", 1);
jsonObjectPost1.put("comments", 3);
// Post 2
JSONObject jsonObjectPost2 = new JSONObject();
jsonObjectPost2.put("fbname", "Think Twice Code Once");
jsonObjectPost2.put("content", "felling full");
jsonObjectPost2.put("likes", 1);
jsonObjectPost2.put("comments", 3);
// Add post1, post2 jsonObject to profile jsonArray
jsonArrayProfile.put(jsonObjectPost1);
jsonArrayProfile.put(jsonObjectPost2);
// Add profile jsonArray to jsonObject
dataToSend.put("profile", jsonArrayProfile);
Log.d("SUCCESS", "JSON: " + dataToSend.toString());
} catch (final JSONException e) {
Log.e("FAILED", "Json build error: " + e.getMessage());
}
答案 1 :(得分:0)
您可以使用以下代码进行尝试。
JSONArray ja = new JSONArray();
ja.put(dataToSend);
答案 2 :(得分:0)
您必须以这种方式创建JSON对象
JSONObject dataToSend = new JSONObject();
JSONArray arrayData = new JSONArray();
dataToSend.put("profile",arrayData);
如果您想将JSON对象添加到JSONArray,请使用此
arrayData.put(JSONObject1);
arrayData.put(JSONObject2);