2016-09-02 5 views
0

json4sネイティブライブラリを使用しようとしました。ここで私はそれを使用する方法です:toStringを使ってマップのコンテンツをシリアライズする方法は?

Builder b = new JsonMessageBuilder(); 
Map<String, List<Object>> m2 = new HashMap<>(); 
m2.put("e", Arrays.asList(new StringBuilder(123))); 
b.message(JavaConverters.mapAsScalaMapConverter(m2).asScala()); 

public static class Test{ 
    @Override 
    public String toString(){ 
     return "test"; 
    } 
} 

class JsonMessageBuilder{ 
    def message[A <: AnyRef](a: A) = println(Serialization.write(a)) 
} 

しかし、コードを印刷この:マップにtoString結果の直列化を強制する方法

{"e":[{}]} 

?私は持っていたい

{"e":["test"]} 
+0

これは誤植ですか?あなたは意味ですか?new StringBuilder( "123") – Samar

+2

なぜこの出力が必要ですか? 'Test'クラスはどこにも使われていません。 – talex

答えて

1

おそらく、問題はあなたがStringBuilderを正しくインスタンス化していない、つまり引数123を引用符で囲まないことです。 Thatsなぜあなたは空のstringbuilderを取得しています。 {"e":[{}]}が印刷されると、シリアル化が正しく実行されています。試してみてください:

m2.put("e", Arrays.asList(new StringBuilder("123"))); 
関連する問題