如何在java中读取JSON文件作为以下给定JSON的键值对? { “XML”:{ “版本”:1.0, “编码”:“UTF-8” }, “注释”:“ABC EFG Json”, “pCt”:{ “pCHead”:{ “日期”:“9999-12-31”, “ID”:“12345”, “类型”:“ABC”, “prtList”:[{ “cCType”:“B”, “cReason”:“, “oInd”:10, }], “pNet”:[{ “seType”:“3”, “eDate”:“2016-10-01”, “出厂日期”:“9999-12-31”, }] } } } publicstaticvoidmain(字符串[]args){ JSONParser=新的JSONParser(); System.out.println(“hii”); 试一试{ Object obj=parser.parse(新文件读取器(“D:\\TestJson.txt”); JSONObject JSONObject=(JSONObject)对象; 对象pCt=jsonObject.get(“pCt”); stringauthor=(String)jsonObject.get(“pCHead”); JSONArray companyList=(JSONArray)jsonObject.get(“prtList”); System.out.println(“名称:+pCt”); System.out.println(“\n公司列表:“+作者”); System.out.println(“\n公司列表:”); 迭代器迭代器=companyList.Iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } }捕获(例外e){ e、 printStackTrace(); } }
根据我不会阅读的JSON,您的解析或多或少是正确的。 唯一的错误是companyList是JSONArray,它的元素是对象类型。您需要从外部将其转换为JSONObject,然后从中取出您的模型如何在java中读取JSON文件作为以下给定JSON的键值对? { “XML”:{ “版本”:1.0, “编码”:“UTF-8” }, “注释”:“ABC EFG Json”, “pCt”:{ “pCHead”:{ “日期”:“9999-12-31”, “ID”:“12345”, “类型”:“ABC”, “prtList”:[{ “cCType”:“B”, “cReason”:“, “oInd”:10, }], “pNet”:[{ “seType”:“3”, “eDate”:“2016-10-01”, “出厂日期”:“9999-12-31”, }] } } } publicstaticvoidmain(字符串[]args){ JSONParser=新的JSONParser(); System.out.println(“hii”); 试一试{ Object obj=parser.parse(新文件读取器(“D:\\TestJson.txt”); JSONObject JSONObject=(JSONObject)对象; 对象pCt=jsonObject.get(“pCt”); stringauthor=(String)jsonObject.get(“pCHead”); JSONArray companyList=(JSONArray)jsonObject.get(“prtList”); System.out.println(“名称:+pCt”); System.out.println(“\n公司列表:“+作者”); System.out.println(“\n公司列表:”); 迭代器迭代器=companyList.Iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } }捕获(例外e){ e、 printStackTrace(); } },java,Java,根据我不会阅读的JSON,您的解析或多或少是正确的。 唯一的错误是companyList是JSONArray,它的元素是对象类型。您需要从外部将其转换为JSONObject,然后从中取出您的模型 public static void main(String[] args) { JSONParser parser = new JSONParser(); System.out.println("hii"); try { Object obj = parser
public static void main(String[] args) {
JSONParser parser = new JSONParser();
System.out.println("hii");
try {
Object obj = parser.parse(new FileReader("D:\\TestJson.txt"));
JSONObject jsonObject = (JSONObject) obj;
Object pCt = jsonObject.get("pCt");
String author = (String) jsonObject.get("pCHead");
JSONArray companyList = (JSONArray) jsonObject.get("prtList");
System.out.println("Name: " + pCt);
System.out.println("\nCompany List:"+author);
System.out.println("\nCompany List:");
Iterator<String> iterator = companyList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (Exception e) {
e.printStackTrace();
}
}
更正格式并添加更多详细信息
public static void main(String[] args) {
JSONParser parser = new JSONParser();
System.out.println("hii");
try {
Object obj = parser.parse(new FileReader("D:\\TestJson.txt"));
JSONObject jsonObject = (JSONObject) obj;
Object pCt = jsonObject.get("pCt");
String author = (String) jsonObject.get("pCHead");
JSONArray companyList = (JSONArray) jsonObject.get("prtList");
System.out.println("Name: " + pCt);
System.out.println("\nCompany List:"+author);
System.out.println("\nCompany List:");
Iterator<String> iterator = companyList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (Exception e) {
e.printStackTrace();
}
}
//lombok
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Company {
String cCType;
String cReason;
String oInd;
}
//in your main
for(Object o : companyList) {
JSONObject companyJson = (JSONObject) o;
Company company = Company.Builder
.anCompany()
.withCCType(companyJson.get("cCType"))
.withCReason(companyJson.get("cReaeson"))
.withOInd(companyJson.get("oInd"))
.build();
//do whatever you like with data
}