example.json
{
"user": "John",
"age": 25,
"gender": "Male",
"title-name": ["title1","title2","title3"],
"address":
{
"permanent-address":
{
"city": "Ohio",
"country": "US"
},
"temporary-address":
{
"city": "Chicago",
"country": "US"
}
}
}
如何在不移动到temporary-address
对象的情况下直接访问address
。
是否可以随机访问?解释如何为给定的json
文件构建树。
答案 0 :(得分:0)
我建议你使用java的Jackson注释。 这是一个简单的框架,允许您将Java对象转换为JSON或从JSON转换。
你会在这里找到toturiels https://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/
github项目在这里: https://github.com/FasterXML/jackson-annotations
一个简短的explenation是你将使用POJO(Plain Old Java Object)映射你的Json对象 基于你的example.json,我们将:
public class Example {
@JsonProperty("user")
private String name;
@JsonProperty("age")
private int age;
@JsonProperty("gender")
private String gender;
@JsonProperty("title-name")
private ArrayList<String> titleNames;
@JsonProperty("address")
private Adresses adresses;
...
请注意最后一个字段的地址类。 地址是一个POJO,其中包含有关2个地址的信息:
public class Addresses {
@JsonProperty("permanent-address")
private Address permanenentAddress;
@JsonProperty("temporary-address")
private Address temporaryAddress;
...
最后,你的Address子元素与一个包含city和contry信息的POJO类配合使用:
public class Address {
@JsonProperty("city")
private String city;
@JsonProperty("country")
private String country;
使用
将example.java POJO与example.json配对后ObjectMapper mapper = new ObjectMapper();
Example data = mapper.readValue(exampleJsonObject, Example.class);
你有!!您可以在一行中访问TemporaryAdress信息或任何信息;)
ObjectMapper mapper = new ObjectMapper();
Example data = mapper.readValue(exampleJsonObject, Example.class);
Address address = data.getAdresses().getTemporaryAdress();
祝你好运