Java 读取包含许多Json对象的Json文件
我希望用Java递归地读取包含以下内容的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
{"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) {
}
});
}
}
}