问:我正在尝试捕获键"value“中捕获的值,并将其显示在控制台上。然而,在执行时得到错误“org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject”
编写的代码:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class FileExtractJSON
{
public static void main(String[] args) throws Exception
{
JSONParser parser = new JSONParser();
try
{
System.out.println("Reading JSON file from Java program");
FileReader fileReader = new FileReader("C:\\Users\\shisyadav\\Desktop\\HP Remainco\\JSON Objects\\directkafkaconsumer_actual.json");
JSONObject value_expected = (JSONObject) parser.parse(fileReader);
JSONArray jsonObject = (JSONArray) value_expected.get("value");
Iterator i = jsonObject.iterator();
System.out.println("Values:");
while (i.hasNext())
{
System.out.println(""+i.next());
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}Sample file from which we are trying to capture value against key "value"
发布于 2018-03-08 14:29:48
您的文件包含JSONArray,而不是JSONObject。检查一下你的Json在一开始就有[]。

JSONObject value_expected = (JSONObject) parser.parse(fileReader);所以这一行(顶部)应该是这样(下面)
JSONArray value_expected = (JSONArray) parser.parse(fileReader);https://stackoverflow.com/questions/49166544
复制相似问题