私はSpring 3.1.2を使用しており、jsonオブジェクトをPOJOに解析する必要があります。これは、解析する必要がある json です。
{
"Person" : {
"id" : "2"
},
"Dog" : {
"dateOfBirth" : "2012-08-20 00:00:00",
"price" : "10.00"
}
}
この json オブジェクト (2 つのオブジェクトを結合したもの) を 1 つの POJO に変換する必要があります。
public class MyClass{
public MyClass(){}
public MyClass(String personsId, TimeStamp dogsDateOfBirth, BigDecimal dogsPrice){
.... // assign each parameter to the appropriate field
}
private String personsId;
private TimeStamp dogsDateOfBirth;
private BigDecimal dogsPrice;
//... Getters and Setters for each field
}
さらに言えばObjectMapper mapper = new ObjectMapper();
、いくつかのjsonオブジェクトがあるため、コードは次のようになります。
String json = ... ;// A json with several objects as above
JsonNode tree = mapper.readTree(json);
Iterator<JsonNode> iter = tree.path("data").getElements();
while (iter.hasNext()){
JsonNode node = iter.next();
MyClass myClass = mapper.readValue(node, MyClass.class);
... // do something with myClass object
}
これを実行すると、次の例外が発生します。
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class ...MyClass]: can not instantiate from JSON object (need to add/enable type information?)
シンプルな POJO を作成しようとしました - Person
:
public class Person{
private String id;
public Person(){}
public Person(String id){
this.id = id;
}
... // Getter and Setter
}
次の操作を行います。
Person person = mapper.readValue(node.path("Person"), Person.class);
私はこの(同じ)例外を受け取ります:
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class ...Person]: can not instantiate from JSON object (need to add/enable type information?)
型情報についていくつか読み込もうとしましたが、ここでどのように役立つか理解できませんでした。
このjsonをPOJOに変換するにはどうすればよいですか?
ありがとう。