把JOSN数据同一层相同的数据都转换成java对象,详细代码
时间: 2023-11-30 17:03:16 浏览: 25
这里提供一个示例代码,假设我们有如下的 JSON 数据:
```json
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA"
},
"hobbies": ["reading", "cooking", "traveling"]
}
```
我们可以使用 Gson 库将其转换为 Java 对象:
```java
import com.google.gson.Gson;
public class Person {
private String name;
private int age;
private Address address;
private String[] hobbies;
public static void main(String[] args) {
String json = "{\n" +
" \"name\": \"John\",\n" +
" \"age\": 30,\n" +
" \"address\": {\n" +
" \"street\": \"123 Main St\",\n" +
" \"city\": \"Anytown\",\n" +
" \"state\": \"CA\"\n" +
" },\n" +
" \"hobbies\": [\"reading\", \"cooking\", \"traveling\"]\n" +
"}";
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getAddress().getStreet());
System.out.println(person.getAddress().getCity());
System.out.println(person.getAddress().getState());
for (String hobby : person.getHobbies()) {
System.out.println(hobby);
}
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public Address getAddress() {
return address;
}
public String[] getHobbies() {
return hobbies;
}
private static class Address {
private String street;
private String city;
private String state;
public String getStreet() {
return street;
}
public String getCity() {
return city;
}
public String getState() {
return state;
}
}
}
```
在这个示例中,我们定义了一个 `Person` 类来表示 JSON 数据中的对象。我们使用 `Gson` 对象的 `fromJson` 方法将 JSON 字符串转换为 `Person` 对象。最后,我们可以通过 `Person` 对象的 getter 方法来获取属性值,并将其打印出来。
注意,这里的 `Address` 类是一个私有内部类,用于表示 JSON 数据中的嵌套对象。同时,`hobbies` 属性是一个字符串数组,用于表示 JSON 数据中的数组。