Ich habe Map<String, String>
das später möchte ich mit Gson zu JSON serialisieren. Einige Schlüssel dieser Karte enthalten Unicode-Zeichen wie \uf177
usw. Das Problem erscheint, wenn ich versuche, eine solche Karte zu JSON serialisiert werden, lassen Sie uns sagen, ich habe Map<String, String>
enthält:Verhindern, dass Gson Unicode-Symbole entgeht
"TEST_KEY" -> "\uf177"
dann, wenn mit Gson serialisiert, ich habe :
{
"TEST_KEY": "\\uf177"
}
welche nicht das, was ich will, ist, ich diese Unicode-Zeichen sein wollen wie sie, wenn serialisiert werden. Gibt es einen Weg, dies zu erreichen? schätzen würde jede mögliche Hilfe,
UPDATE
-Code, der die Frage stellt:
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);
Dieses Stück Code gewidmet Inhalt von i18n-Datei für JavaScript-Projekt zu ändern, das ist der Grund, warum Unicode sollte nicht maskiert werden (sonst ist es gerade nicht richtig gelöst)
Danke, Cheers
Ja: Wenn es die 6-stellige Zeichenfolge ist, dann ist die richtige Schreibweise "\\ uf177". Also ist das Verhalten von gson normal. –
Können Sie etwas mehr Code zeigen? Es sieht so aus, als hättest du eine Zeichenkette mit den Zeichen "\ uf177" und nicht irgendein Unicode-Zeichen. – JeremyP
@ JeremyP hat ein bisschen mehr Code hinzugefügt, danke! –