gpt4 book ai didi

java - 如何将 jsonobject 添加到我想要的 jsonarray

转载 作者:行者123 更新时间:2023-11-30 00:37:58 25 4
gpt4 key购买 nike

我只能添加 jsonobj 和 json obj,就像这张图片的左侧一样

enter image description here

但是如果我想像右手边一样添加数据,我应该在我的代码中添加什么代码(我想知道如何指定要添加的 json 数组的 header )(来自 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();
}
}

最佳答案

使用 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());
}

输出:

        {
"profile":[
{
"fbname":"Think Twice Code Once",
"content":"felling full",
"likes":1,
"comments":3
},
{
"fbname":"Think Twice Code Once",
"content":"felling full",
"likes":1,
"comments":3
}
]
}

关于java - 如何将 jsonobject 添加到我想要的 jsonarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43099390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com