次JSONを考えてみましょう:
{
"firstName": "John",
"lastName": "Doe",
"address": {
"street": "21 2nd Street",
"city": "New York",
"postalCode": "10021-3100",
"coordinates": {
"latitude": 40.7250387,
"longitude": -73.9932568
}
}
}
そして、あなたは、次のJavaクラスへのcoordinates
ノード解析したい考えてみます。これを行うには
public class Coordinates {
private Double latitude;
private Double longitude;
// Default constructor, getters and setters omitted
}
を、に全体JSONをパースJsonNode
とObjectMapper
:
String json = "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"address\":{\"street\":"
+ "\"21 2nd Street\",\"city\":\"New York\",\"postalCode\":\"10021-3100\","
+ "\"coordinates\":{\"latitude\":40.7250387,\"longitude\":-73.9932568}}}";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
coordinates
次にノードを照会しCoordinates
クラスにそれを解析するObjectMapper
を使用するJSON Pointerを使用:
JsonNode coordinatesNode = node.at("/address/coordinates");
Coordinates coordinates = mapper.treeToValue(coordinatesNode, Coordinates.class);
JSONポインタJSONを横断するパス言語です。詳細については、RFC 6901をご確認ください。バージョン2.3以来、Jacksonで利用可能です。
http://martinfowler.com/articles/refactoring-document-load.html#CreatingObjectsDeepInTheDocumentStructure –