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

升级至Play 2.8框架后Gson失效,如何用Java提取JSON?

Play 2.8 框架升级的JSON提取功能迁移

适配阶段的核心问题

项目升级至Play 2.8框架时,需要保留原有从JSON字符串中提取指定业务字段的能力,目前可参考的Java版本实现示例存量较少,适配过程中存在以下阻碍:

  • 项目过往依赖的com.google.gson库已不再被Play 2.8版本支持
  • 原业务代码中使用的JsonArray、JsonElement、JsonObject等Gson核心类无法正常加载、实例化与调用

待迁移的原有业务逻辑

原有基于Gson实现的字段提取方法如下,核心功能为聚合保单内嵌的pai信息并补充关联字段:

public static synchronized JsonArray getJsonPAIFromString(String jsonString) {
    JsonArray jsonPAIArray = new JsonArray();

    if (jsonString!=null && !jsonString.isEmpty()) {
        JsonElement jelement = new JsonParser().parse(jsonString);
        JsonObject jobject = jelement.getAsJsonObject();
        jobject = jobject.getAsJsonObject("result");
        JsonArray jarray = jobject.getAsJsonArray("policyList");
        for (int i = 0; i < jarray.size(); i++) {
            jobject = jarray.get(i).getAsJsonObject();
            JsonObject pai = jobject.get("pai").getAsJsonObject();
            pai.add("policyHolderId", jobject.get("policyHolderId"));
            pai.add("policyId", jobject.get("id"));
            pai.add("policyNumber", jobject.get("number"));
            jsonPAIArray.add(pai);
            Logger.debug("Response : \n" + pai.toString());
        }
    }
    return jsonPAIArray;
}

该方法的执行流程:校验入参JSON字符串的非空性,解析字符串后逐层定位到result.policyList数组节点,遍历每一个保单节点,提取节点下的pai子对象,将保单对应的持有人ID、保单ID、保单号补充到pai对象中,最终将所有处理完成的pai对象聚合为数组返回。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 07:27:02