【问题标题】:How To send array in params in fast android networking library如何在快速 android 网络库中的参数中发送数组
【发布时间】:2019-03-28 08:53:43
【问题描述】:

我正在使用 Fast-Android-Networking,我想将数据发送到包含字符串和数组的服务器。可以发送字符串,但我无法发送数组而不是数组列表。这是简单的数组。 我已经搜索了其他解决方案,但都是关于凌空抽射。 谁能帮忙? 请不要标记重复。 最后 5 个参数是数组。我尝试将它作为 String.valueOf(ReadQuran) 但它也没有工作。

我的代码:

 AndroidNetworking.post(Api.ROOT_URL +"api/stageFiveFormData")
            .addBodyParameter("mto_id",idu)
            .addBodyParameter("school_id", scholid)
            .addBodyParameter("person_name", personnameS)
            .addBodyParameter("designation", designantionS)
            .addBodyParameter("cell_number",personcellS)
            .addBodyParameter("email",emailpersonS)
            .addBodyParameter("whatsapp_number",whatsApppersonS)
            .addBodyParameter("school_name",schoolNameS)
            .addBodyParameter("postal_address",postalAdressS)
            .addBodyParameter("city",cityS)
            .addBodyParameter("tehsil",tehsilS)
            .addBodyParameter("district",districtS)
            .addBodyParameter("s_primary", priamryChecked)
            .addBodyParameter("s_middle", middleChecked)
            .addBodyParameter("s_high", highChecked)
            .addBodyParameter("s_higher", hsChecked)
            .addBodyParameter("principal_name", nameOfPrincipalS)
            .addBodyParameter("p_contact_num",cellNoPrincipalS)
            .addBodyParameter("p_email",emailPrincipalS)
            .addBodyParameter("p_whatsapp_number",whatsAppPrincipalS)
            .addBodyParameter("class", Class)
            .addBodyParameter("rq_book", String.valueOf(ReadQuran))
            .addBodyParameter("rqb_qty", String.valueOf(ReadQuranQty))
            .addBodyParameter("fq_book", String.valueOf(FehamQuran))
            .addBodyParameter("fqb_qty", String.valueOf(FehamQuranQty))




            .setPriority(Priority.HIGH)
            .build()
            .getAsString(new StringRequestListener() {
                public void onResponse(String response) {
                    try {
                        JSONArray jsonArray = new JSONArray(response);
                        JSONObject jsonObject = jsonArray.getJSONObject(0);
                        String result = jsonObject.getString("result");
                        String message = jsonObject.getString("message");


                        if (result.equalsIgnoreCase("success")) {
                            Toast.makeText(FormStage5.this, "" + message, Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(FormStage5.this, formstage2submittedmsg.class);
                            startActivity(intent);


                            pDialog.dismiss();
                        } else/* (result.equalsIgnoreCase("0"))*/ {
                            Toast.makeText(FormStage5.this, ""+message, Toast.LENGTH_SHORT).show();
                            pDialog.dismiss();
                        }

                    } catch (JSONException e) {
                        pDialog.dismiss();
                        Toast.makeText(FormStage5.this, "Something Went Wrong , Try Again", Toast.LENGTH_SHORT).show();
                    }

                }


                @Override
                public void onError(ANError anError) {
                    Toast.makeText(FormStage5.this, "Please Check Your Internet Connection" + anError.toString(), Toast.LENGTH_LONG).show();
                    pDialog.hide();
                }
            });

【问题讨论】:

    标签: java android arrays json


    【解决方案1】:

    最好的方法是创建一个 POJO 类并设置 Array 值,然后传递它。如果您使用 GSONConverter 工厂的改造,它将自动转换为 JSON。

    【讨论】:

      【解决方案2】:

      将 arrayname.toString() 作为值传递

      【讨论】:

        【解决方案3】:

        这个问题的公认答案是关于改造和 GSON,而问题是关于快速 Android 网络。接受的答案对我不起作用。

        我发现这样做的唯一方法是自己构建主体并将其添加到带有.addJSONObjectBody 的请求中。

        我想要一个看起来像这样的身体:

        {
            "roles": [
                "customer-admin"
            ]
        }
        

        我发现的最后一种方法是:

        import org.json.JSONArray;
        import org.json.JSONException;
        import org.json.JSONObject;
        
        JSONObject roles;
        try {
            roles = new JSONObject();
            JSONArray rolesArr = new JSONArray();
            rolesArr.put("customer-admin");
            roles.put("roles", rolesArr);
        } catch (JSONException e) {
            // Make error toast here
            return;
        }
                    
        AndroidNetworking.post(url)
            .addJSONObjectBody(roles)
            .build()
        

        【讨论】:

        • JSONArray 怎么样? {“角色”:“客户管理员”,“id”:“1”}
        猜你喜欢
        • 1970-01-01
        • 2018-08-25
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 2016-12-29
        相关资源
        最近更新 更多