2017-08-16 34 views
0

これはyamlファイルです。私はこれをpojoクラスにロードしようとしています。それは私がlistMapのプロパティを作成することができないことを示しています。この問題を掘り下げて助けてください。このyamlファイルには、複数のキー値のペアを含むlistMapがあります。また、私はこのアプローチが良いかどうかアドバイスが必要ですかマップにロードする必要があります。ymlファイルをJava pojoに変換する方法

android: dfeiei 
driver: dfkejifein 
list: 
    - aabra 
    - ka 
    - dabra 
listMap: 
    key: value 
    name: paras 
    sirname: porwal 

このyamlファイルをpojoに読み込むコード。

YamlLoader yamlFile=yaml.loadAs(in, YamlLoader.class); 

ここはPOJOクラスです。

import java.util.List; 
    import java.util.Map; 

    public class YamlLoader { 
    private String android; 
    private String driver; 
    private List<String>list; 
    private Map<String,String>map; 
    private List listMap; 
    public String getAndroid() { 
     return android; 
    } 
    public void setAndroid(String android) { 
     this.android = android; 
    } 
    public String getDriver() { 
     return driver; 
    } 
    public void setDriver(String driver) { 
     this.driver = driver; 
    } 
    public List<String> getList() { 
     return list; 
    } 
    public void setList(List<String> list) { 
     this.list = list; 
    } 

    @Override 
    public String toString() { 
     return "YamlLoader [android=" + android + ", driver=" + driver + ", list=" + list + ", map=" + map + ", listMap=" 
       + listMap + "]"; 
    } 
    public Map<String,String> getMap() { 
     return map; 
    } 
    public void setMap(Map<String,String> map) { 
     this.map = map; 
    } 
    public List getListMap() { 
     return listMap; 
    } 
    public void setListMap(List listMap) { 
     this.listMap = listMap; 
    } 
+0

yamlが 'listmap'のために何も保持していないからです。 yamlの解析と空の変数の無視に使用するアノテーションがあれば、 'private List listMap;'とそれに依存するものを削除するか、ライブラリを検索してください。 – Nico

答えて

0

listMap YAMLはマッピングからそれを埋めることができない理由である、Listです。リストが必要な場合は、YAMLを次のように変更してください。

listMap: 
    - key: value 
    - name: paras 
    - sirname: porwal 

これにより、1つのエントリのマッピングリストが表示されます。 YAML側でマッピングを保持したい場合は、Mapにロードしてください。

YAMLエンティティのJava型へのマッピング方法をさらに制御したい場合は、Jacksonの代わりにSnakeYaml APIを使用します。私はSnakeYaml自体よりもカスタマイズが少なく、同時にそれ以上のレベルではないという理由で、人々がJacksonをYAML処理に使用する理由を知りません。

+0

ありがとうございました。しかし、私はヘビyaml APIを使用しているとあなたが言及したことを試みたが、それは動作していません。 – paras

+0

次に、取得したエラーを説明します。 – flyx

関連する問題