gpt4 book ai didi

java - 如何在正文中 POST 原始类型 JSON 数据?

转载 作者:行者123 更新时间:2023-12-01 19:40:13 26 4
gpt4 key购买 nike

我正在使用 Volley 请求向服务器发送一个发布请求,并且我有一些必须发送的原始类型 JSON 数据。在这里我不知道如何发送第四个对象 Students 是数组类型。

要发布的JSON数据是

{
"course_id":1,
"batch_id":1,
"subject_id":1,
"students":[{"student_id":6,"present":0},{"student_id":17,"present":0}]
}

我的代码

private void fetchDataAndMarkAttendence() {
RequestQueue requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
status = jsonObject.getString("status");
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> map = new HashMap<String, String>();
SharedPreferences prefs = getApplicationContext().getSharedPreferences(MY_PREFS_NAME, Activity.MODE_PRIVATE);
token = prefs.getString("token","");
map.put("Authorization", "Token "+token);
return map;
}
}
}

因此,有关如何发布上述 JSON 数据的任何帮助都会有所帮助。

最佳答案

这称为 JSONArray。

try {

JSONArray jsonArray = jsonObject.getJSONArray();

for (int i = 0; i < jsonArray.length(); i++) {
int student_id = jsonObject.getInt("student_id");
int present = jsonObject.getInt("present");
}

} catch (JSONException e) {
e.printStackTrace();
}

编辑

如上所述,您想要发布 json。因此,使用下面的代码创建 json 并将 mainJsonObject.toString(); 作为参数。

 try {

JSONObject mainJsonObject = new JSONObject();

JSONArray jsonArray = new JSONArray();
//if more than one then wrap inside loop
JSONObject jsonObject = new JSONObject();
jsonObject.put("student_id", value);
jsonObject.put("present", value);
jsonArray.put(jsonObject);
//end loop

mainJsonObject.put("course_id", value);
mainJsonObject.put("batch_id", value);
mainJsonObject.put("subject_id", value);
mainJsonObject.put("students", jsonArray);

} catch (JSONException e) {
e.printStackTrace();
}

希望有帮助。

关于java - 如何在正文中 POST 原始类型 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55592699/

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