2017-06-29 5 views
0

私はJacksonを使ってjsonファイルから/にデータを読み書きしていますが、私はPOJOに問題があります。それは、ユーザーに連絡する方法であると考えられているマップを持っています(したがって、Enumに応じて0から7を持つことができます)。私は、JSFでフォームを使用して連絡を取る方法を作りたいと思っています。JSFのあるジャクソンで地図を地図

value="#{config.user.contacts[EMAIL_PRO]}" 私はもちろんEMAIL_PROがEnumです(後で、ユーザーはEnum自身を選択する必要がありますが、今は簡単です)。 しかし、私はそうする際に、エラーがJSON

私は理解して

ウィッヒ、「私のデバッグが返された値が{null = null}であることを述べている原因では許可されていないMapの

ヌルキーです。今最初の質問:マップは空であるため、JSFは単純にそのように動作するはずですか?キー "EMAIL_PRO"はまだ存在しませんが、JSFが私の仕事を終わらせるべきではなく、キーで正しい価値を置くべきですか?

もう1つの質問は、ジャクソンとマップです。私が言ったように、私のPOJOユーザはマップを含んでおり、jsonファイルはマップ自身(複数のユーザを含む)です。

MapをMap<String, Object>、対象にMap<Enum, Object>を含むJacksonを使用してこのファイルにマップを書き込むことは本当に可能ですか?そしてもしそうなら、どうですか?助けのための

おかげ

PS:私は私のAPIや、私のPOJOのいずれかを変更することはできません。

答えて

0

私は、How to convert hashmap to JSON object in Java

を参照してください、これが繰り返さポストだと思うそしてそれは応答のいずれかに言うように:

Map<String, Object> data = new HashMap<String, Object>(); 
data.put("name", "Mars"); 
data.put("age", 32); 
data.put("city", "NY"); 
JSONObject json = new JSONObject(); 
json.putAll(data); 
System.out.printf("JSON: %s", json.toString(2)); 

出力:また、使用しようとすることができ

JSON: { 
    "age": 32, 
    "name": "Mars", 
    "city": "NY" 
} 

GoogleのGSON.GoogleのGSONは、JavaオブジェクトをJSON表現に変換するのに最適なライブラリです

+0

あなたがそれを行う方法、私は理解することができます。しかし、オブジェクトにマップが含まれているとうまくいくと思いますか?データをマップに入れ、ObjectMapperを使用してマップにファイルを書き込んでいますが、値にマップが含まれているといくつか問題があります。 –

+0

Mmmm、GSONライブラリで試してみましたか? –

+0

私はそれを決める人ではなく、ジャクソンはプロジェクトのために選ばれました。 –