ハッシュマップをjson文字列に変換してワイヤで送信したいと考えています。ここでは、コードハッシュマップをJSON文字列に変換する
public static void main(String []args)
throws JSONException, JsonParseException, JsonMappingException, IOException {
Map<String,String> varMap = new MyMap<String,String>();
varMap.put("VAR","123");
varMap.put("OTHER_VAR","234");
Gson gson = new GsonBuilder().create();
String jsonString = gson.toJson(varMap);
JSONObject json = new JSONObject();
json.put("Variable",jsonString);
System.out.println("JSON " + json);
}
出力は
私は正しいことを行いますが、私が見つけた例はSTRNGにバックスラッシュを含めるいけないと仮定JSON {"Variable":"{\"VAR\":\"123\",\"OTHER_VAR\":\"234\"}"}
です。バックスラッシュは二重引用符をエスケープすることを理解しているので、文字列置換メソッドのどれもバックスラッシュを置き換えることはできません。
次のような出力が得られるのですか?
JSON {"Variable":{"VAR":"123","OTHER_VAR":"234"}}
何らかの形でバックスラッシュを追加しないようにカスタムシリアル化プロパティを使用できますか?
https://kodejava.org/how-do-i-convert-map-into-json/が –
なぜあなたは文字列にマップを変換するだけではなくマップを追加する?これを参照してください。 – azurefrog
JSONの値は文字列であると予想されるので –