java将映射转换为使用Gson转义的双引号字符串
我有以下几点Map
:
import java.util.Map;
Map<String, Object> myMap = Map.of(
"key1", "value1",
"key2", Map.of(
"key2-1", "value2-1",
"key2-2", 22
)
));
我试图使用^{String
:
String expected = // ???
System.out.println(expected);
{\"key1\":\"value1\",\"key2\":{\"key2-1\":\"value2-1\",\"key2-2\":22}}
(请注意,打印时会转义双引号)
到目前为止,为了实现这一目标,我正在做:
import com.google.gson.Gson;
String myMapAsJsonString = new Gson().toJson(myMap);
String myMapAsJsonStringWithDoubleQuotesEscaped = myMapAsJsonString.replace("\"", "\\\"");
但是我很确定第二行可以被其他东西代替,并且我只能使用Gson
来实现我想要的转义
任何想法都将不胜感激
# 1 楼答案
(感谢@fluffy)
而不是做:
我刚刚再次重新序列化了JSON字符串:
得到了我期望的正确结果:
印刷品: