2016-10-19 5 views
0

こんにちは、私は、のようなJavaオブジェクトをキーとして使用するにはJSONでは?

// code 
class A{ 
    private int i; 
    private String j; 
// getters/setters 
} 

をJavaクラスを持って、私は私がこれを行うことができますどのように、私のJSONのマップキーとしてこのオブジェクトを使用したいですか? 例: - {javaObject:value}のようなものが必要です

+0

不可能:すべてのJSONキーは文字列です。あなたのクラスと文字列との間で全単射マッピングを行うことができれば、そうすることができます(オブジェクトの文字列表現をキーとして使用します) – Amadan

+0

'{javaObject:value} 'の' value'は何ですか?正確に? –

+0

こんにちはエイドリアン、 私はハッシュマップのように言ってみましょう: - 地図 map = new HashMap(); と私はそれがJSON文字列です。 – user1157635

答えて

0

この場合、オブジェクトをjsonに変換する場合は、このlinkを使用してください。 Gsonを使ってそれを行うことができます。

+0

オブジェクトがtostringを使用しているため動作していません。またリンクの下には可能ではないというメッセージが表示されます: - http://stackoverflow.com/questions/11628698/can-we-make-object-as-key-in-map -when-using-json – user1157635

+0

gsonを使用してみてください。問題が解決します。 –

0

あなたが任意のオブジェクトにキーをバインドし、JSONのキーとキー名をマッピングし、これを達成するために、ジャクソン・ライブラリを使用することができます -

1.Youは以下のようなPOJOをデータバインディングを作成することができます -

class A{ 

    @JsonProperty("key_name") 
    private int i; 
    @JsonProperty("key_name") 
    private String j; 
// getters/setters 

} 

あなたは以下のようなPOJOを作成し、キーとして使用するオブジェクトたい2.Ifは -

class JsonData{ 
@JsonProperty("key_name") 
private A object; 
//getter //setter 
} 
0

我々がする必要がJSONでマップキーとしてこんにちは、私は実際には複雑なオブジェクトのために、正しい答えを見つけました使用: -

GsonBuilder gsonBuilder = new GsonBuilder(); 
gsonBuilder.enableComplexMapKeySerialization(); 
Gson mapper = gsonBuilder.create(); 
//Object to JSON in String 
String jsonInString = mapper.toJson(myobject); //myobject=any object of class A 
関連する問題