gpt4 book ai didi

java - 如何将给定的字符串解析为有意义的 json?

转载 作者:行者123 更新时间:2023-12-01 14:06:18 24 4
gpt4 key购买 nike

我通过HttpClient从网站获得了这个值.

[
{
"scout": "webdriver",
"short_version": "4.3",
"long_name": "iPad",
"api_name": "ipad",
"long_version": "4.3.",
"automation_backend": "webdriver",
"os": "Mac 10.4"
},
{
"scout": "webdriver",
"short_version": "5.0",
"long_name": "Firefox",
"api_name": "firefox",
"long_version": "14",
"automation_backend": "webdriver",
"os": "Mac 10.5"
},
{
"scout": "webdriver",
"short_version": "4",
"long_name": "Firefox",
"api_name": "firefox",
"long_version": "15",
"automation_backend": "webdriver",
"os": "Mac 10.6"
},
{
"scout": "webdriver",
"short_version": "5",
"long_name": "Chrome",
"api_name": "chrome",
"long_version": "5.0.1.",
"automation_backend": "webdriver",
"os": "Mac 10.7"
}
]

我想将此数据转换为这种格式:

[OS: {Mac10.4,Mac10.5}]

等等,操作系统列表

[{api_name: {firefox:{14,15}} }]

等等,浏览器及其版本列表。

操作系统和浏览器列表太长。如何使用 json 或任何其他方法解析它?

最佳答案

我建议您看一下 json-smart 库。它轻便且快速。 (https://code.google.com/p/json-smart/)

然后你可以写这样的东西(只是例子):

    Map<String, List<String>> osMap = new HashMap<String, List<String>>();
osMap.put("OS", new ArrayList<String>());

Map<String, Map<String, List<String>>> apiNameMap =
new HashMap<String, Map<String, List<String>>>();
apiNameMap.put("api_name", new HashMap<String, List<String>>());

JSONArray ja = (JSONArray) JSONValue.parse(JSON_STRING);
for (Object obj : ja) {
JSONObject jsonObj = (JSONObject) obj;
String os = (String) jsonObj.get("os");
String apiName = (String) jsonObj.get("api_name");
String longVersion = (String) jsonObj.get("long_version");

// OS
if (!osMap.get("OS").contains(os)) {
osMap.get("OS").add(os);
}

// API
if (!apiNameMap.get("api_name").containsKey(apiName)) {
apiNameMap.get("api_name")
.put(apiName, new ArrayList<String>());
}
apiNameMap.get("api_name").get(apiName).add(longVersion);

}

System.out.println(JSONValue.toJSONString(osMap));
System.out.println(JSONValue.toJSONString(apiNameMap));

关于java - 如何将给定的字符串解析为有意义的 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com