我有一组看起来像这样的字符串:
[{"tag":"rat","score":0.7973},{"tag":"lion","score":0.7184},{"tag":"dog","score":0.2396},{"tag":"woof","score":0.1944},{"tag":"cat","score":0.1157}]
Run Code Online (Sandbox Code Playgroud)
我想从字符串中按顺序打印以下内容:
rat
lion
dog
woof
cat
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
正确使用任何JSON解析库(如GSON或Jackson)并将其转换为Java Object.
注意:它返回java.util.LinkedHashMap维护订单.
示例代码:
String jsonString="[{\"tag\":\"rat\",\"score\":0.7973},{\"tag\":\"lion\",\"score\":0.7184},{\"tag\":\"dog\",\"score\":0.2396},{\"tag\":\"woof\",\"score\":0.1944},{\"tag\":\"cat\",\"score\":0.1157}]";
Type type = new TypeToken<ArrayList<Map<String, String>>>() {}.getType();
ArrayList<Map<String, String>> data = new Gson().fromJson(jsonString, type);
for (Map<String, String> map : data) {
System.out.println(map.get("tag"));
}
Run Code Online (Sandbox Code Playgroud)
String jsonString="[{\"tag\":\"rat\",\"score\":0.7973},{\"tag\":\"lion\",\"score\":0.7184},{\"tag\":\"dog\",\"score\":0.2396},{\"tag\":\"woof\",\"score\":0.1944},{\"tag\":\"cat\",\"score\":0.1157}]";
TypeReference<ArrayList<Map<String, String>>> typeRef = new TypeReference<ArrayList<Map<String, String>>>() {};
ObjectMapper mapper = new ObjectMapper();
try {
ArrayList<Map<String, String>> data = mapper.readValue(jsonString, typeRef);
for (Map<String, String> map : data) {
System.out.println(map.get("tag"));
}
} catch (Exception e) {
System.out.println("There might be some issue with the JSON string");
}
Run Code Online (Sandbox Code Playgroud)
输出:
rat
lion
dog
woof
cat
Run Code Online (Sandbox Code Playgroud)