Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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对象的Json文件_Java_Json - Fatal编程技术网

Java 读取包含许多Json对象的Json文件

Java 读取包含许多Json对象的Json文件,java,json,Java,Json,我希望用Java递归地读取包含以下内容的json文件。我怎样才能做到这一点 {"preview":false,"result":{"TransactionType":"Mobile","TransactionID":"STSVSTFS7SVS3S","TransTime":"20181210171511"}} {"preview":false,"result":{"TransactionType":"Mobile","TransactionID":"LKSNS6S2S7SVS3S","Trans

我希望用Java递归地读取包含以下内容的json文件。我怎样才能做到这一点

{"preview":false,"result":{"TransactionType":"Mobile","TransactionID":"STSVSTFS7SVS3S","TransTime":"20181210171511"}}
{"preview":false,"result":{"TransactionType":"Mobile","TransactionID":"LKSNS6S2S7SVS3S","TransTime":"20181210171511"}}
{"preview":false,"result":{"TransactionType":"Mobile","TransactionID":"TSSKBDGD7SVS3S","TransTime":"20181210171511"}}
这是我的Java代码,只是它只读取第一个json

import com.brian.db.DBConnector;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;


public class ReadJSONData {

    private static final String filePath = "D:\\test\\c2b.json";

    public static void main(String[] args) throws SQLException {
        try {
            // read the json file
            FileReader reader = new FileReader(filePath);
            JSONParser jsonParser = new JSONParser();
            JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
            //System.out.println(jsonObject);
            Object preview =  jsonObject.get("preview");
            System.out.println("Preview:"+preview);

            JSONObject result = (JSONObject) jsonObject.get("result");
            System.out.println("RESULT:"+result);

            String transactionType =  (String) result.get("TransactionType");
            System.out.println("TransactionType:"+transactionType);

            String transid = (String) result.get("TransID");
            System.out.println("TransID:"+transid);

            String transTime =  (String) result.get("TransTime");
            System.out.println("TransTime:"+ transTime);



        } catch (FileNotFoundException ex) {

            ex.printStackTrace();

        } catch (IOException ex) {

            ex.printStackTrace();

        } catch (ParseException ex) {

            ex.printStackTrace();

        } catch (NullPointerException ex) {

            ex.printStackTrace();

        }

    }

}
公正和:

公共类ReadJSONData{
私有静态最终字符串filePath=“D:\\test\\c2b.json”;
公共静态void main(字符串[]args)引发SQLException{
JSONParser JSONParser=新的JSONParser();
try(Stream=Files.line(path.get(filePath))){
stream.forEach(行->{
试一试{
JSONObject JSONObject=(JSONObject)jsonParser.parse(行);
…
}捕获(例外e){
}
});
}
}
}

您的尝试在哪里?@NicholasK我的java代码现在被指示。该文件作为一个整体不是有效的JSON,而是包含一系列JSON对象。是否有一些简单的规则来检测对象之间的边界?在您的示例中,似乎每个对象都位于其自己的文本行上。@Henry我一直在浏览json序列。任何帮助都将不胜感激。这并不能回答我的问题。
public class ReadJSONData {

    private static final String filePath = "D:\\test\\c2b.json";

    public static void main(String[] args) throws SQLException {
        JSONParser jsonParser = new JSONParser();
        try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
            stream.forEach(line -> {
                try {
                    JSONObject jsonObject = (JSONObject) jsonParser.parse(line);
                    …
                } catch (Exception e) {
                }
            });
        }
    }

}