Java 如何在android中以post的形式发送嵌套json
我使用android valley库,目前我只能发布简单的json,我很难发布嵌套的json格式,如下所示:Java 如何在android中以post的形式发送嵌套json,java,android,json,api,android-volley,Java,Android,Json,Api,Android Volley,我使用android valley库,目前我只能发布简单的json,我很难发布嵌套的json格式,如下所示: { "user": { "email": "digest@example.com", "password": "thedigest123" 看起来我不知道如何格式化这个案例中的嵌套json,你能帮我吗 这是我用来连接web api的java类 public void l
{
"user": {
"email": "digest@example.com",
"password": "thedigest123"
看起来我不知道如何格式化这个案例中的嵌套json,你能帮我吗
这是我用来连接web api的java类
public void login(String email, String password) {
String url = BASE_URL + "api/session";
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("email", email);
jsonObject.put("password", password);
Response.Listener<JSONObject> successListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(mApplication, "Success", Toast.LENGTH_SHORT).show();
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(mApplication, "Error", Toast.LENGTH_SHORT).show();
}
};
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, jsonObject, successListener, errorListener);
mRequestQueue.add(request);
}
catch (JSONException e) {
Toast.makeText(mApplication, "JSON exception", Toast.LENGTH_SHORT).show();
}
}
public void登录(字符串电子邮件、字符串密码){
字符串url=BASE_url+“api/会话”;
JSONObject JSONObject=新的JSONObject();
试一试{
jsonObject.put(“电子邮件”,email);
jsonObject.put(“密码”,password);
Response.Listener successListener=新建Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
Toast.makeText(mApplication,“Success”,Toast.LENGTH_SHORT).show();
}
};
Response.ErrorListener ErrorListener=新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(mApplication,“Error”,Toast.LENGTH_SHORT).show();
}
};
JsonObjectRequest=新的JsonObjectRequest(request.Method.POST、url、jsonObject、successListener、errorListener);
mRequestQueue.add(请求);
}
捕获(JSONException e){
Toast.makeText(mApplication,“JSON异常”,Toast.LENGTH_SHORT.show();
}
}
public class UserRequestDTO{
private UserDto user;
//getters, setters
}
public class UserDto{
private String email;
private String password;
}
public static String stringify(Object obj) {
Gson gson = new Gson();
String jsonString = gson.toJson(obj);
return jsonString;
}
或者使用
新建JSONObject(stringify(new UserRequestDto(/*params*/);
)创建JSONObject,并在您的请求中使用它。如果您不想增加Gson的开销或创建类(除非您打算拥有更复杂的对象),您可以简单地执行以下操作:
JSONObject userJsonObject = new JSONObject("{ \"user\": {\"email\": \"" + email + "\", \"password\": \"" + password + "\" } }");
这将是明智的选择,尤其是当存在更复杂的
JSONObjects
+1时