我有一个名为mani.json
的JSON文件,其中包含多个对象,每个对象包含3个键值对,这些键值对包含一些工件文件的信息。
{ "art_src_path": "source/subdir/hi-there.txt","art_id": "6945-L9.txt","art_date": "2018:03:10 01:10:33"}
{ "art_src_path": "source/hello-world.txt","art_id": "10426-L13.txt","art_date": "2018:03:10 01:10:33"}
{ "art_src_path": "source/subdir/testfile.txt","art_id": "50518-L66.txt","art_date": "2018:03:10 01:10:33"}
我想在另一个名为FileTest.java
的文件中遍历每个对象,并获取与art_src_path
对应的值。我的FileTest.java
文件包含如下代码:
<!-- language: java -->
JSONParser parser = new JSONParser();
JSONObject a = (JSONObject) parser.parse(new FileReader("mani.json"));
for (Object o : a ) {
String path = (String) o.get("art_src_path");
File myFile = new File(path);
System.out.println("Source path: "+path);
}
NetBeans会提示错误,并指出解析器返回的对象不可迭代,因此我无法使用for-each循环。
虽然这段代码经过一定的修改,可以很好地迭代array
个对象,但它似乎无法迭代object
个对象。
所以我有两个问题:
mani.json
中的所有对象以从每个对象获取art_src_path
的值?到目前为止,几乎所有答案都告诉我如何迭代一组对象。我能够做到这一点。我需要知道如何迭代对象的对象。
谢谢。
答案 0 :(得分:0)
mani.json文件是否是正确的json格式?如果是这样,列表将是JSONArray。 JSONArray可以迭代,但JSONObject不能。 如果mani.json文件不是json格式而只是文本文件。逐行读取并将每个解析为JSONObject。
select sum(amount)
from invoices i join
invoices i2
on i2.id = 2 and
(i.date < i2.date or
i.date = i2.date and i.id <= i2.id
);