获取JSON中某个对象的值最常用的方式是通过Java的JSON库将JSON字符串转换成Java中的对象,然后通过对象属性的方式获取需要的值。下面是获取JSON中某个对象的值的完整攻略以及两条示例说明:
步骤一:导入依赖
首先需要导入相关的依赖,本文使用的是Gson库,可以在项目中添加以下依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
步骤二:将JSON字符串转换成Java对象
通过Gson库可以方便地将JSON字符串转换成Java对象,根据实际情况选择转换成Map、List或具体的Java类都是可行的。
import com.google.gson.Gson;
public class JsonUtils {
public static Map<String, Object> jsonToMap(String jsonString) {
Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> map = gson.fromJson(jsonString, type);
return map;
}
public static List<Object> jsonToList(String jsonString) {
Gson gson = new Gson();
Type type = new TypeToken<List<Object>>() {}.getType();
List<Object> list = gson.fromJson(jsonString, type);
return list;
}
public static <T> T jsonToObj(String jsonString, Class<T> clazz) {
Gson gson = new Gson();
T obj = gson.fromJson(jsonString, clazz);
return obj;
}
}
步骤三:通过属性名获取对象的值
将JSON字符串转换成Java对象后,即可通过对象属性名获取需要的值。示例如下:
String jsonString = "{\"name\":\"Tom\",\"age\":20,\"scores\":[89,90,91]}";
Map<String, Object> map = JsonUtils.jsonToMap(jsonString);
String name = (String) map.get("name");
int age = (int) map.get("age");
List<Integer> scores = (List<Integer>) map.get("scores");
int firstScore = scores.get(0);
System.out.println(name); // Tom
System.out.println(age); // 20
System.out.println(firstScore); // 89
示例二:通过JSON路径获取对象的值
有时候JSON字符串的嵌套比较深,需要通过JSON路径来获取对象的值。可以使用JsonPath库来实现。
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.5.0</version>
</dependency>
import com.jayway.jsonpath.JsonPath;
String jsonString = "{\"name\":\"Tom\",\"age\":20,\"scores\":[{\"math\":89,\"english\":90,\"chinese\":91}]}";
int mathScore = JsonPath.read(jsonString, "$.scores[0].math");
int englishScore = JsonPath.read(jsonString, "$.scores[0].english");
int chineseScore = JsonPath.read(jsonString, "$.scores[0].chinese");
System.out.println(mathScore); // 89
System.out.println(englishScore); // 90
System.out.println(chineseScore); // 91
以上就是获取JSON中某个对象的值的完整攻略,并提供了两个示例来加深理解,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何获取JSON中某个对象的值 - Python技术站