在没有 Java 对象 class 的情况下提取值的最佳方法是什么
What is the best way to extract a value without having a Java Object class
我有如下字符串
{
"id": "abc",
"title": "123.png",
"description": "fruits",
"information": [
{
"type": "apple",
"url": "https://apple.com"
},
{
"type": "orange",
"url": "https://orange.com"
}
],
"versions": 0
}
我想获得 url
的值,其中 type: orange
。 information
中的列表可能并不总是与上述数据中出现的顺序相同。我知道我可以在 python 中使用 json.loads
和 json.dump
.
轻松做到这一点
我正在尝试 java 使用 JsonNode
和 objectMapper.readTree.at("/information")
但我无法以巧妙巧妙的方式通过这一点来获取列表并获取 url 其中类型 = 橙色。
这很简单
使用 JSON 库并使用该库解析响应。然后仅获取您需要的值和属性...
与您的案例相关的示例:
// Get your Json and transform it into a JSONObject
JSONObject mainObject = new JSONObject(yourJsonString); // Here is your JSON...
// Get your "information" array
JSONArray infoArray = mainObject.getJSONArray("information"); // Here you have the array
// Now you can go through each item of the array till you find the one you need
for(int i = 0 ; i < infoArray.length(); i++)
{
JSONObject item = participantsArray.getJSONObject(i);
final String type = item.getString("type");
final String url = item.getString("url");
if(type.equals("orange"))
{
// DO WHATEVER YOU NEED
}
}
我有如下字符串
{
"id": "abc",
"title": "123.png",
"description": "fruits",
"information": [
{
"type": "apple",
"url": "https://apple.com"
},
{
"type": "orange",
"url": "https://orange.com"
}
],
"versions": 0
}
我想获得 url
的值,其中 type: orange
。 information
中的列表可能并不总是与上述数据中出现的顺序相同。我知道我可以在 python 中使用 json.loads
和 json.dump
.
我正在尝试 java 使用 JsonNode
和 objectMapper.readTree.at("/information")
但我无法以巧妙巧妙的方式通过这一点来获取列表并获取 url 其中类型 = 橙色。
这很简单
使用 JSON 库并使用该库解析响应。然后仅获取您需要的值和属性...
与您的案例相关的示例:
// Get your Json and transform it into a JSONObject
JSONObject mainObject = new JSONObject(yourJsonString); // Here is your JSON...
// Get your "information" array
JSONArray infoArray = mainObject.getJSONArray("information"); // Here you have the array
// Now you can go through each item of the array till you find the one you need
for(int i = 0 ; i < infoArray.length(); i++)
{
JSONObject item = participantsArray.getJSONObject(i);
final String type = item.getString("type");
final String url = item.getString("url");
if(type.equals("orange"))
{
// DO WHATEVER YOU NEED
}
}