gpt4 book ai didi

java - 发送不带转义字符的嵌套 JSON 对象

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:00 25 4
gpt4 key购买 nike

我正在尝试使用 JSONObjectRequest 将嵌套的 JSONObject 发送到服务器。服务器需要以下形式的 JSONObject:

{  
"commit":"Sign In",
"user":{
"login":"my username",
"password":"mypassword"
}
}

但目前我的程序正在通过以下方式发送 (jsonObject.tostring())

{  
"commit":"Sign In",
"user":" {
\"login\”:\”myusername\”,
\”password\”:\”mypassword\”
} ”
}

JSONObjects 由:

final JSONObject loginRequestJSONObject = new JSONObject();
final JSONObject userJSONObject = new JSONObject();
userJSONObject.put("login", "myuser");
userJSONObject.put("password", "mypass");

loginRequestJSONObject.put("user", userJSONObject);
loginRequestJSONObject.put("commit", "Sign In");
Map<String, String> paramsForJSON = new HashMap<String, String>();
paramsForJSON.put("user", userJSONObject.toString().replaceAll("\\\\", "");
paramsForJSON.put("commit", "Sign In");
JSONObject objectToSend = new JSONObject(paramsForJSON);

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, objectToSend,...)

如何以上述形式发送 JSONObject?

最佳答案

这是你的错误:

paramsForJSON.put("user", userJSONObject.toString().replaceAll("\\\\", ""));

您已经将用户变成了您不需要的 String,只需这样做:

loginRequestJSONObject.put("user", userJSONObject);

虽然你已经完成了这个,但实际上你已经有了正确的行,这就是你所需要的:

final JSONObject loginRequestJSONObject = new JSONObject();
final JSONObject userJSONObject = new JSONObject();
userJSONObject.put("login", "myuser");
userJSONObject.put("password", "mypass");

loginRequestJSONObject.put("user", userJSONObject);
loginRequestJSONObject.put("commit", "Sign In");

JSONObject objectToSend = loginRequestJSONObject;

关于java - 发送不带转义字符的嵌套 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42322971/

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