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

如何将LinkedTreeMap数据转为String并处理天气API嵌套数据?

解决Gson LinkedTreeMap转String及天气API数据处理问题

问题原因

restResult.get("response")返回的是Gson解析JSON对象生成的LinkedTreeMap实例,而非String类型,直接强转必然抛出ClassCastException。

方法一:将LinkedTreeMap转为JSON字符串

利用Gson的序列化能力,把LinkedTreeMap直接转为标准JSON字符串:

import com.google.gson.Gson;

// 初始化Gson实例
Gson gson = new Gson();
// 获取response对应的Map对象
Object responseObj = restResult.get("response");
// 序列化为JSON字符串
String responseJsonStr = gson.toJson(responseObj);

拿到字符串后,可根据需求进行后续的字符串处理或再次解析。

方法二:直接遍历Map处理数据(更高效)

既然数据已经是Map结构,无需转字符串,直接逐层提取数据更高效:

// 提取response层级的Map
Map<String, Object> responseMap = (Map<String, Object>) restResult.get("response");

// 处理header信息
Map<String, Object> headerMap = (Map<String, Object>) responseMap.get("header");
String resultCode = (String) headerMap.get("resultCode");
String resultMsg = (String) headerMap.get("resultMsg");

// 处理body信息
Map<String, Object> bodyMap = (Map<String, Object>) responseMap.get("body");
String dataType = (String) bodyMap.get("dataType");

// 提取预报数据列表
Map<String, Object> itemsMap = (Map<String, Object>) bodyMap.get("items");
List<Map<String, Object>> forecastList = (List<Map<String, Object>>) itemsMap.get("item");

// 遍历处理每条预报数据
for (Map<String, Object> forecast : forecastList) {
    String baseDate = (String) forecast.get("baseDate");
    String baseTime = (String) forecast.get("baseTime");
    String category = (String) forecast.get("category");
    String fcstDate = (String) forecast.get("fcstDate");
    String fcstTime = (String) forecast.get("fcstTime");
    Object fcstValue = forecast.get("fcstValue"); // 兼容字符串(如"강수없음")和数值类型
    Double nx = (Double) forecast.get("nx");
    Double ny = (Double) forecast.get("ny");

    // 自定义处理逻辑示例
    System.out.printf("类别: %s | 预报时间: %s %s | 预报值: %s%n", 
                      category, fcstDate, fcstTime, fcstValue);
}

注意事项

  • 类型转换时需注意字段的实际类型:比如fcstValue可能是字符串(无降水情况)或数值,建议用Object接收后再根据业务场景转换。
  • 确保项目中已正确引入Gson依赖,避免类找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:40:31