如何找到未命名的 JSON 对象的值? (org.json) (java)
How can I find the value of an unnamed JSON object? (org.json) (java)
[Java 17 使用 org.json 解析库。无法切换到 Gson,因为我在 org.json 中编写了大量代码:/ ]
您好!
我在 Java 中使用 API 和 org.json JSON 解析库。我需要获取数组中未命名的 JSON 对象的值。
{
"lorem": [
{ // this object needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
},
{ // this object also needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
},
{ // this object needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
}
]
}
请注意,整个 JSON 文件不是数组,JSON 对象中只有一个 JSON 数组。我怎样才能获得数组中所有这些未命名字段的值?
在此先感谢您的帮助,如果之前有人问过这个问题,我也很抱歉,当我在 Whosebug 上搜索时,我找不到任何关于它的信息。
这些对象并不是真正的未命名对象,它们是 JSON 数组的一部分。因为它们包含在一个数组中,所以我们可以遍历该数组,我们可以通过索引检索每个对象。
假设我们从文件中读取了上面提供的json:
public static void main(String[] args) throws FileNotFoundException {
String resourceName = "src/main/resources/input.json";
InputStream inputStream = new FileInputStream(resourceName);
JSONTokener jsonTokener = new JSONTokener(inputStream);
JSONObject jsonObject = new JSONObject(jsonTokener);
// Get the array named lorem from the main object
JSONArray jsonArray = jsonObject.getJSONArray("lorem");
// Iterate through the array and get every element by index
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
System.out.println("ipsum:" + object.get("ipsum"));
System.out.println("sit:" + object.get("sit"));
System.out.println("consectetur:" + object.get("consectetur"));
}
}
此外,JSONObject
有一个 toList
方法,其中 returns 一个 List<Object>
。
[Java 17 使用 org.json 解析库。无法切换到 Gson,因为我在 org.json 中编写了大量代码:/ ]
您好! 我在 Java 中使用 API 和 org.json JSON 解析库。我需要获取数组中未命名的 JSON 对象的值。
{
"lorem": [
{ // this object needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
},
{ // this object also needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
},
{ // this object needs to be retrieved
"ipsum":"dolor",
"sit":"amet",
"consectetur":"adipiscing"
}
]
}
请注意,整个 JSON 文件不是数组,JSON 对象中只有一个 JSON 数组。我怎样才能获得数组中所有这些未命名字段的值?
在此先感谢您的帮助,如果之前有人问过这个问题,我也很抱歉,当我在 Whosebug 上搜索时,我找不到任何关于它的信息。
这些对象并不是真正的未命名对象,它们是 JSON 数组的一部分。因为它们包含在一个数组中,所以我们可以遍历该数组,我们可以通过索引检索每个对象。
假设我们从文件中读取了上面提供的json:
public static void main(String[] args) throws FileNotFoundException {
String resourceName = "src/main/resources/input.json";
InputStream inputStream = new FileInputStream(resourceName);
JSONTokener jsonTokener = new JSONTokener(inputStream);
JSONObject jsonObject = new JSONObject(jsonTokener);
// Get the array named lorem from the main object
JSONArray jsonArray = jsonObject.getJSONArray("lorem");
// Iterate through the array and get every element by index
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
System.out.println("ipsum:" + object.get("ipsum"));
System.out.println("sit:" + object.get("sit"));
System.out.println("consectetur:" + object.get("consectetur"));
}
}
此外,JSONObject
有一个 toList
方法,其中 returns 一个 List<Object>
。