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

如何将Java JSON对象数据发送到Android API请求,求可行开发方案

Android端对接Java Web服务JSON接口方案

你提到的搭建Java API返回JSON响应的方案本身是当前场景下最优的选择,不需要额外找其他更复杂的方案,大部分情况下你甚至不需要完全新搭一套服务,直接在现有Java Web应用上扩展接口即可,具体落地可以参考以下路径:

方案1:复用现有Java Web扩展JSON接口(首推)

  • 核心优势:无需新增服务节点,直接复用现有业务逻辑、鉴权体系,后续维护成本最低
  • 如果你用的是Spring Boot/Spring MVC体系的Web应用,只需要新增@RestController注解的接口类即可,框架会自动完成JSON序列化/反序列化:
@RestController
@RequestMapping("/api/android")
public class AndroidApiController {
    // 接收Android端的JSON请求参数,返回JSON响应
    @PostMapping("/getData")
    public CommonResult getBizData(@RequestBody RequestParam param) {
        // 直接调用现有业务层代码获取数据,无需重复开发
        return bizService.queryData(param);
    }
}
  • 如果你用的是非Spring的传统Java Web应用,可以新增一个Servlet专门处理Android端请求,手动引入Jackson/Fastjson等工具完成JSON处理即可,不需要改造原有业务代码。

方案2:Android端发送JSON请求的通用实现

Android侧发送JSON请求不需要复杂封装,用主流的OkHttp/Retrofit框架即可实现,OkHttp示例代码如下:

// 1. 构造请求参数JSON
val requestJson = JSONObject().apply {
    put("userId", 1001)
    put("queryCondition", "all")
}.toString()
// 2. 构造JSON请求体
val requestBody = RequestBody.create(
    MediaType.parse("application/json;charset=utf-8"),
    requestJson
)
// 3. 发起请求
val request = Request.Builder()
    .url("http://你的Java服务地址/api/android/getData")
    .post(requestBody)
    .build()
OkHttpClient().newCall(request).enqueue(object : Callback {
    override fun onFailure(call: Call, e: IOException) {
        // 处理请求异常逻辑
    }
    override fun onResponse(call: Call, response: Response) {
        val respJson = response.body()?.string()
        // 解析返回的JSON数据即可
    }
})

如果使用Retrofit,只需要在接口定义时给参数添加@Body注解,框架会自动将业务对象转换为JSON请求体。

特殊场景可选替代方案

如果现有Java Web服务完全不允许修改代码,可以临时搭一个轻量代理服务,代理Android端的请求,将原有Web接口返回的非JSON格式数据转换为JSON后再返回给Android端,该方案仅适合临时过渡,会额外增加维护成本,不建议长期使用。

注意:需要在Java服务端配置跨域规则,允许Android端的访问来源,否则会出现请求被拦截的问题


内容的提问来源于stack exchange,提问作者Shakir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:39:03