我有Map<String, String>
后来我想使用Gson序列化为JSON。此映射的某些键包含Unicode字符,如\uf177
等。当我尝试将此类映射序列化为JSON时出现问题,假设我有Map<String, String>
包含:
"TEST_KEY" -> "\uf177"
然后,当使用Gson序列化时,我有:
{
"TEST_KEY": "\\uf177"
}
这不是我想要的,我希望这些Unicode符号与序列化时一样。有没有办法实现这个目标?非常感谢任何帮助,
更新
产生问题的代码:
projectI18nFileContent = commentsRemover.transform(projectI18nFileContent);
//find json map which represents translations
Matcher fullTranslationsMapMatcher = translationsMapSerializedToJsonPattern.matcher(projectI18nFileContent);
if (!fullTranslationsMapMatcher.find()) {
throw new IllegalArgumentException(format("%s \n does not contain valid translations json map", projectI18nFileContent));
}
String translationsMapSerializedToJson = fullTranslationsMapMatcher.group();
String newTranslationsMapSerializedToJson = gson.toJson(newTranslations);
//replace old json translations map with a new
return projectI18nFileContent.replace(translationsMapSerializedToJson, newTranslationsMapSerializedToJson);
这段代码专门用于更改javascript项目的i18n文件的内容,这就是为什么unicode不应该被转义的原因(否则它只是解决不正确)
谢谢, 干杯