我有一个非常大的JSON文件,格式如下:
[{"fullname": "name1", "id": "123"}, {"fullname": "name2", "id": "245"}, {"fullname": "name3", "id": "256"}]
它看起来像一个JSONArray。所有记录都写在同一行中。
您能帮我如何使用Java解析此文件。我想读取每个JSON对象并显示所有全名和ID。以下是我的尝试,但是我的代码无法正常工作:
import org.apache.commons.lang3.StringEscapeUtils; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JSONFileReaderDriver { public static void main(String[] args) throws FileNotFoundException, IOException, ParseException { String filename="Aarau"; String src="C:\\"+filename+".json"; JSONParser parser = new JSONParser(); JSONObject obj; try { BufferedReader br=new BufferedReader (new FileReader(src)); obj = (JSONObject) new JSONParser().parse(row); String fullname=obj.get("fullname"); String id=obj.get("id"); System.out.println ("fullname: "+fullname+" id: "+id); }catch(Exception e) {e.printStackTrace();} br.close(); } }
好的,伙计们……解决了我的问题。我正在发布解决方案,以防有人再次遇到相同的问题,可以使用我的解决方案。我的解决方案部分是由Rahul Rabhadiya推动的。多谢,伙计。
try{ row=br.readLine(); JSONArray root = (JSONArray) JSONValue.parseWithException(row); for (int i=0;i<root.size();i++) { JSONObject rootObj = (JSONObject) root.get(i); String fullname=(String) rootObj.get("fullname"); System.out.println (fullname); } }catch(Exception e) { e.printStackTrace(); }