JSONをJavaオブジェクトにマップしようとしています。その逆もあります。そうすることで、クラスの私の未知のパラメータはjava.util.Map
@JsonAnySetter
メソッドにマップされます。しかし、Javaオブジェクトからjsonを取り戻す時に、私は間違った出力を得ています。私はfasterxmlライブラリを使用しています。ここでJavaオブジェクトをJSONにマッピングするのが難しい
は私のJavaオブジェクトです:
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TestClass {
private String context_id;
private Map<String, String> properties = new HashMap<>();
public String getContext_id() {
return context_id;
}
public void setContext_id(String context_id) {
this.context_id = context_id;
}
@JsonAnySetter
public void set(String fieldName, String value){
this.properties.put(fieldName, value);
}
@JsonAnyGetter
public Map<String, String> any() {
return this.properties;
}
public String get(String fieldName){
return this.properties.get(fieldName);
}
}
と私はcom.fasterxml.jackson.databind.ObjectMapper
でJavaオブジェクトにマッピングするために提供していますJSONは次のとおりです。
{
"context_id": "14",
"io": "odp"
}
と私は戻ってJavaからJSONを取得しようとすると、オブジェクト私はこのようになっています:
{
"context_id": "14",
"properties" : {
"io": "odp"
},
"io": "odp"
}
しかし、私はそれを得るように戻ってください:
{
"context_id": "14",
"properties" : {
"io": "odp"
}
}
私には分かりません。
実際に期待されている出力を意味しましたか、入力と同じように出力しますか? –
はい、そうです。私の予想出力は - '{ "CONTEXT_ID": "14"、 "プロパティ":{ "IO": "ODP" } }私はgetメソッドを削除した場合、' –