You need to enable JavaScript to run this app. Android端如何构造指定结构的JSONObject用于Web服务传参
优惠活动
大模型
产品
解决方案
定价
更多

Android端如何构造指定结构的JSONObject用于Web服务传参

Android 构造指定JSONObject实现方案

你需要实现的目标完整JSON结构如下:

{
  "customerAccount": {
    "payloadType": "KEYED",
    "accountType": "CHECKING",
    "cardDetails": {
      "dataFormat": "PLAIN_TEXT",
      "cardNumber": "5454545454545454",
      "expiryDate": "1221",
      "cvv": "123",
      "issueNumber": "01"
    }
  }
}

直接使用Android系统自带的org.json.JSONObject即可实现,无需引入第三方库,也不需要用到JSONArray,实现逻辑按嵌套层级从内到外构造即可。

Java 实现代码

import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;

public JSONObject buildCustomerAccountJson() {
    try {
        // 1. 构造最内层的cardDetails对象
        JSONObject cardDetails = new JSONObject();
        cardDetails.put("dataFormat", "PLAIN_TEXT");
        cardDetails.put("cardNumber", "5454545454545454");
        cardDetails.put("expiryDate", "1221");
        cardDetails.put("cvv", "123");
        cardDetails.put("issueNumber", "01");

        // 2. 构造customerAccount对象,塞入cardDetails
        JSONObject customerAccount = new JSONObject();
        customerAccount.put("payloadType", "KEYED");
        customerAccount.put("accountType", "CHECKING");
        customerAccount.put("cardDetails", cardDetails);

        // 3. 构造根对象,塞入customerAccount
        JSONObject rootJson = new JSONObject();
        rootJson.put("customerAccount", customerAccount);

        // 调试时可以打印格式化后的JSON验证结构
        Log.d("ConstructedJSON", rootJson.toString(4));
        return rootJson;
    } catch (JSONException e) {
        e.printStackTrace();
        return null;
    }
}

Kotlin 实现代码

import org.json.JSONObject
import android.util.Log

fun buildCustomerAccountJson(): JSONObject? {
    return try {
        // 构造内层cardDetails
        val cardDetails = JSONObject().apply {
            put("dataFormat", "PLAIN_TEXT")
            put("cardNumber", "5454545454545454")
            put("expiryDate", "1221")
            put("cvv", "123")
            put("issueNumber", "01")
        }
        // 构造customerAccount
        val customerAccount = JSONObject().apply {
            put("payloadType", "KEYED")
            put("accountType", "CHECKING")
            put("cardDetails", cardDetails)
        }
        // 构造根对象
        val rootJson = JSONObject().apply {
            put("customerAccount", customerAccount)
        }
        // 调试输出
        Log.d("ConstructedJSON", rootJson.toString(4))
        rootJson
    } catch (e: Exception) {
        e.printStackTrace()
        null
    }
}

注意事项

  • 构造JSONObject的put方法会抛出异常,必须做捕获处理
  • 实际业务使用时,替换示例中的固定卡号、有效期等参数为你的动态业务值即可
  • 如果开启了代码混淆,需要配置规则避免混淆org.json相关类,防止序列化异常
  • 最终构造出的rootJson可以直接调用toString()方法转换为字符串,传递给Web服务接口使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 21:27:07