You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中使用Volley发送JSON对象:EditText取值构建JSONObject问题

解决Android Volley中构建JSONObject的问题

嗨,我来帮你搞定这个JSON对象构建的问题!你现在已经成功从EditText拿到了SN和Name的值,接下来只需要用JSONObject的put()方法来安全地添加键值对,而不是手动拼接JSON字符串(手动拼接很容易因为特殊字符或者语法错误导致JSON无效)。

正确的代码实现步骤:

  • 确保输入值有效:先给获取到的字符串做个空值判断,避免传递空数据到接口
  • 用API构建JSON对象:创建空的JSONObject后,调用put()方法逐个添加键值对,自动处理转义问题
  • 结合Volley发送请求:把构建好的JSON对象直接传入JsonObjectRequest的请求体

这里是修改后的完整代码示例:

btn_enter.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // 获取输入值并去除首尾空格
        SN1 = inputsn.getText().toString().trim();
        Name1 = inputname.getText().toString().trim();

        // 空值校验,避免无效请求
        if (SN1.isEmpty() || Name1.isEmpty()) {
            Toast.makeText(Add.this, "请填写完整的SN和名称", Toast.LENGTH_SHORT).show();
            return;
        }

        // 构建JSONObject
        JSONObject jsonMenu = new JSONObject();
        try {
            // 按接口要求的键名添加键值对,这里的"sn"和"name"可根据实际接口调整
            jsonMenu.put("sn", SN1);
            jsonMenu.put("name", Name1);
            
            Toast.makeText(Add.this, "JSON对象已创建", Toast.LENGTH_SHORT).show();

            // 初始化Volley的JsonObjectRequest
            JsonObjectRequest volleyRequest = new JsonObjectRequest(
                    Request.Method.POST,
                    "你的接口请求URL",
                    jsonMenu,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            // 请求成功后的处理逻辑,比如解析返回数据
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            // 请求失败后的处理逻辑,比如提示错误
                        }
                    }
            );

            // 将请求加入Volley请求队列
            Volley.newRequestQueue(Add.this).add(volleyRequest);

        } catch (JSONException e) {
            e.printStackTrace();
            Toast.makeText(Add.this, "JSON对象构建失败", Toast.LENGTH_SHORT).show();
        }
    }
});

为什么不推荐手动拼接JSON字符串?

  • 如果输入内容包含双引号、斜杠等特殊字符,手动拼接会直接破坏JSON格式,而put()方法会自动处理字符转义
  • 手动拼接容易出现语法错误(比如漏写逗号、引号不配对),排查起来非常麻烦,官方API构建的方式更可靠

内容的提问来源于stack exchange,提问作者R.Maharjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:35:55