我有一个包含json对象数组的json文件:
[{"id":"939f0080-e93e-4245-80d3-3ac58a4a4335","name":"Micha","date":"2021-04-20T11:21:48.000Z","entry":"Wow"}, {"id":"939f0070-e93f-4235-80d3-3ac58a4a4324","name":"Sarah","date":"2021-04-21T11:21:48.000Z","entry":"Hi"}, {"id":"897f0080-e93e-4235-80d3-3ac58a4a4324","name":"John","date":"2021-04-25T17:11:48.000Z","entry":"Hi how are you"}...]
我使用json simple来获取数组,但我只能获取对象,而不能获取值。
JSONParser jsonParser = new JSONParser();
try {
FileReader reader = new FileReader("j.json");
Object object = jsonParser.parse(reader);
JSONArray jsonArray = (JSONArray) object;
//prints the first Object
System.out.println("element 1 is" + jsonArray.get(0));
//prints whole Array
System.out.println(jsonArray);
如何通过文件进行迭代,并获得每个日期、名称日期和条目的值,而不是对象的值?
我想得到这样的东西:
"id is 939f0080-e93e-4245-80d3-3ac58a4a4335 name is Micha date is 2021-04-20T11:21:48.000Z enry is wow"
"id is 939f0070-e93f-4235-80d3-3ac58a4a4324 name is Sarah 2021-04-21T11:21:48.000Z date is 2021-04-21T11:21:48.000Z"
"name is ..."
3条答案
按热度按时间b1zrtrql1#
你想要的基本上就是这个
你可以用
getOrDefault
如果属性是可选的。还有无数其他库可以将json转换为java对象。这将给你更多的类型安全。例如jackson
或gson
.ruarlubt2#
jsonarray实现了集合和iterable,因此您可以使用for循环或迭代器或流对其进行迭代。遗憾的是,对象不是泛型类型的,因此您将始终获得对象,并且必须自己强制转换它们:
kkbh8khc3#
希望这有助于: