Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试从json文件读取文件内容时出错_Java_Json - Fatal编程技术网

Java 尝试从json文件读取文件内容时出错

Java 尝试从json文件读取文件内容时出错,java,json,Java,Json,问:我试图捕获键“value”中捕获的值,并将其显示在控制台上。但是,当执行时,获取错误为“org.json.simple.JSONArray不能转换为org.json.simple.JSONObject” 编写的代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import java.util.Li

问:我试图捕获键“value”中捕获的值,并将其显示在控制台上。但是,当执行时,获取错误为“org.json.simple.JSONArray不能转换为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();
            }
        }
    }

您的文件具有
JSONArray
,而不是
JSONObject
。检查Json在开始时是否有
[]

所以这一行(上)应该是这一行(下)


由于它是一个数组,您需要将其存储为JSONArray,而不是JSONObject(解析后)new Gson().toJson(fileReader);用这个希望它会有帮助我也试过了。然而,当执行JSONArray值_expected=(JSONArray)parser.parse(fileReader)时,它会给我同样的错误;JSONArray jsonObject=(JSONArray)值_应为.get(0);JSONArray jsonObject=(JSONArray)值_应为.get(0)---这是给出errorJSONObject的行,jsonObject=(jsonObject)值_应为。get(0);//试试这个,因为它是一个jsonObject jsonObject=(jsonObject)值_expected.get(0)//使用它会产生与上面代码中包含JSONArray值的行相同的错误。\u expected=(JSONArray)parser.parse(fileReader);
JSONObject value_expected = (JSONObject) parser.parse(fileReader);
JSONArray value_expected = (JSONArray) parser.parse(fileReader);