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

Java GUI实时汇率货币转换器开发问题求助

Java GUI货币转换器JSON处理错误排查方案

1. 确认org.json依赖是否正确引入

org.json不是Java标准库,必须手动引入依赖:

  • 若使用Maven,在pom.xml中添加:
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20240303</version> <!-- 建议使用最新稳定版 -->
    </dependency>
    
  • 手动导入jar包的话,需将json.jar放置到项目类路径下,并在IDE中添加为项目库。

2. 检查网络请求的响应读取逻辑

很多新手会因未完整读取API响应导致JSON解析失败,正确的读取方式如下:

URL apiUrl = new URL("你的实时汇率API地址");
URLConnection connection = apiUrl.openConnection();
// 部分API要求添加User-Agent头,避免被拦截
connection.setRequestProperty("User-Agent", "Mozilla/5.0");

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder responseBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
    responseBuilder.append(line);
}
reader.close();
String jsonResponse = responseBuilder.toString();

3. 匹配API返回的JSON结构进行解析

JSON解析错误大多源于键名不匹配或结构嵌套处理错误:

  • 假设API返回结构为:
    {"base":"EUR","rates":{"USD":1.08,"GBP":0.86}}
    
    正确的解析代码应为:
    JSONObject rootObj = new JSONObject(jsonResponse);
    JSONObject ratesObj = rootObj.getJSONObject("rates");
    double usdRate = ratesObj.getDouble("USD");
    
  • 注意JSON键名大小写敏感,若API返回的是"usd"而非"USD",直接用"USD"会抛出JSONException。

4. 完善异常捕获与日志打印

通过捕获异常并打印栈信息,能快速定位错误根源:

try {
    // 网络请求与JSON解析代码
} catch (IOException e) {
    e.printStackTrace(); // 排查网络连接、API访问失败等问题
} catch (JSONException e) {
    e.printStackTrace(); // 排查键不存在、类型不匹配等解析问题
}

比如出现JSONException: JSONObject["xxx"] not found.,说明你使用了API返回中不存在的键;出现IOException则大概率是网络或API地址错误。

补充建议

如果上述方案仍未解决问题,可提供以下信息进一步排查:

  • 具体的异常报错信息
  • 你使用的汇率API地址
  • 完整的代码片段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:50:44