1

Javaプロパティファイルをネストされたオブジェクトを持つJSONに変換したいと思います。私はhereの例を辿ったが、うまく動作しない。例えばジャクソンを使用したJSONへのJavaプロパティファイル

、与えられた:

objectA.version=1.0 
objectA.hostname=192.168.0.11 
objectA.port=9989 
objectB.hostname=10.0.2.15 
objectB.port=9998 

を私がしたい:

{ 
    “objectA” : { 
      "version” : "1.0" 
      "host” : “192.168.0.11”, 
      "port" : 9989 
      }, 
    “objectB” : { 
      "host” : “10.0.2.15”, 
      "port" : 9998 
      } 
} 

は、これは私がこれまで持っているものです。

static class Endpoint 
{ 
    @JsonProperty("objectA") 
    public ObjectA objectA; 

    @JsonProperty("objectB") 
    public ObjectB objectB; 

} 
static class ObjectA 
{ 
    public String hostname; 
    public String port; 
    public String version; 
} 

static class ObjectB 
{ 
    public String hostname; 
    public String port; 
} 

try (InputStream input = getClass().getClassLoader().getResourceAsStream("file.properties")) 
{ 
    JavaPropsMapper mapper = new JavaPropsMapper(); 
    Endpoint host = mapper.readValue(input, Endpoint.class); 
    String asText = mapper.writeValueAsString(host); 
    System.out.println(asText); 
} 

出力は次のようになります。

objectA.version=1.0 
objectA.hostname=192.168.0.11 
objectA.port=9989 
objectB.hostname=10.0.2.15 
objectB.port=9998 
+0

あなただけのプロパティのJSON構造を印刷する場合は、ブラケットとものではありません、あなたはObjectMapperを使用することができてファイル。この参照を参照してください:https://www.mkyong.com/java/how-to-enable-pretty-print-json-output-jackson/ – suguspnk

+0

@suguspnkこれは私がしたいことではありません。私はプロパティファイルをネストされた(フラットではない)構造のJSONに変換したい。 – ksl

+0

今私は混乱しています。 @。@ – suguspnk

答えて

1

私はそれを理解しました。

try (InputStream input = getClass().getClassLoader().getResourceAsStream("file.properties")) 
{ 
    JavaPropsMapper mapper = new JavaPropsMapper(); 
    Endpoint host = mapper.readValue(input, Endpoint.class); 
    // String asText = mapper.writeValueAsString(host); 

    // add this 
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); 
    String asText = ow.writeValueAsString(host); 
    // 

    System.out.println(asText); 
} 
関連する問題