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

Java使用JSONParser读取JSON文件仅返回一行结果该如何解决

问题原因
  • 你当前的代码遍历的是JSON顶层对象的键值对,你的JSON文件顶层只有reviews这一个键,所以自然只会输出一行内容,输出的就是这个键对应的整个数组内容
  • 你已经把reviews数组提取出来了,但完全没有用到这个变量,自然没法遍历输出数组内的每个元素
修正后的代码
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.FileReader;
import java.util.Map;

public class ReadReviews {
    public static void main(String[] args) {
        try {
            FileReader read = new FileReader("C:\\Users\\User\\eclipse-workspace\\Task\\files\\reviews.json");
            JSONParser parser = new JSONParser();
            JSONObject jsonObject = (JSONObject) parser.parse(read);
            
            // 直接提取reviews数组,无需提前初始化无意义的空数组
            JSONArray reviews = (JSONArray) jsonObject.get("reviews");
            
            // 遍历数组内的每一个评论对象
            for (Object reviewObj : reviews) {
                JSONObject review = (JSONObject) reviewObj;
                System.out.println("===== 单条评论内容 =====");
                // 遍历单条评论的所有键值对
                for (Map.Entry<String, Object> entry : review.entrySet()) {
                    System.out.println(entry.getKey() + ": " + entry.getValue());
                }
                System.out.println(); // 每条评论之间空行分隔,方便阅读
            }
            read.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:42:03