2017-01-03 47 views
0

example.jsonJSR 353 - 对象模型:如何随机地访问该对象

{ 
    "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

我建议你使用Jackson注释的java。 这是一个简单的框架,它允许您将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(普通Java对象)的JSON对象 以.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; 
... 

最后你的地址子元素包含城市和contry信息的POJO类马培德:

public class Address { 

@JsonProperty("city") 
private String city; 

@JsonProperty("country") 
private String country; 

一旦你马培德您example.json与Example.java POJO使用

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(); 

好运