2017-10-06 16 views
1

以下の例を参照してください。jsonプロパティのセットからオブジェクトを作成するjackson

public class Human { 
    private String name; 
    private int age; 
} 

public class Teacher { 
    private String school; 
    private Human human; 
} 

とJSONのようになります。

{ 
    "school": "My School", 
    "age": 20, 
    "name": "My Name" 
} 

私は内側のオブジェクトとして人間を持っていますが、JSONのプロパティの同じレベルに一致している必要がありJSON文字列から教師を作成したいです。

JSONからJavaオブジェクトを作成するためにJackson APIを使用しています。

答えて

-1

{ "school": "school name here", "human": { "name": "Groot", "age": 99 } }

これは、Javaオブジェクトの変換及びその逆にJSONに関する詳細について教師オブジェクト

ためのJSON文字列の形式であろう。このリンクを参照してください。 http://www.baeldung.com/jackson-object-mapper-tutorial
https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

+0

これは回答ですか?それが答えであれば、答えについて少し説明できますか? –

+1

申し訳ありませんが、私はちょうど初心者です。 :) ちょうど今更新されました –

2

あなたは@JsonUnwrappedとして人間界をマークすることができます:あなたが探しているフォーマットにデシリアライズされます

public class Teacher { 
    private String school; 
    @JsonUnwrapped 
    private Human human; 
    // constructor/setters 
} 

public class Human { 
    private String name; 
    private int age; 
    // constructor/setters 
} 

public class Test { 
    String str = "{ \"school\": \"My School\", \"age\": 20, \"name\": \"My Name\" }"; 
    System.out.println(new ObjectMapper().readValue(str, Teacher.class)); 
} 

を。

+0

ニース!このシナリオはかなり正確にドキュメントで説明されています。https://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonUnwrapped.html – flakes

関連する問題