当我的对象包含其他对象时,如何发布json对象?

时间:2017-08-22 15:13:48

标签: java android json android-volley

我有两个简单的课程。

public class account_ {
        public String account_id;
        public String fname ;
        public String lname ;

        public loging_REQUIREMENT login_R;
}
public class loging_REQUIREMENT{
    public String login_id;
    public String login_key;
    .
    .
}

我使用Volley将数据发布到服务器。

StringRequest stringRequest=new StringRequest(Request.Method.PUT, url + "profile", new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            volleyCallback.onSuccess(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            volleyCallback.onError(error+"");
        }
    }){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params=new HashMap<String, String>();
            params.put("account_id",account_.account_id);
            params.put("fname",account_.fname);
            params.put("lname",account_.lname);

            params.put("login_R", ********* my problem*******   );
            return params;
        }
    };
    RequestQueue requestQueue= Volley.newRequestQueue(context);
    requestQueue.add(stringRequest);
}

在这种情况下,我尝试手动输入“login_R”但它不起作用,因为在此之前和之后自动放置一些Quotation并给我JSON语法错误,现在我不能把“log_R”放在“params”中”。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您正在尝试将loging_REQUIREMENT对象的实例传递给期望String对象的函数。这是不允许的。你只能通过:

login_R.login_idlogin_R.login_key

因为那些也是String。如果需要将整个对象作为JSON字符串传递,则必须将其转换为JSON表示形式。 Here是使用最广泛的库。

PS。它可以帮助每个人在遵循Java Naming Conventions时处理您的代码。使代码更易于阅读。最相关的是

  

类名应以大写字母开头,并且是名词,例如字符串,颜色,按钮,系统,线程等。