From 512daedf09f49f112a7c0168518b8fb2a8f24832 Mon Sep 17 00:00:00 2001 From: marhali Date: Mon, 7 Feb 2022 19:21:44 +0100 Subject: [PATCH] fix array mapper on complex values --- CHANGELOG.md | 26 ++++++++++--------- .../io/parser/json/JsonArrayMapper.java | 8 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd8286e..9beac87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,23 +3,25 @@ # easy-i18n Changelog ## [Unreleased] +### Fixed +- Exception on json array value mapping ## [3.0.0] -### BREAKING CHANGES -- The local file structure of your translation files must be configured in the settings menu +### BREAKING CHANGES +- The local file structure of your translation files must be configured in the settings menu -### Added -- Modularization supports namespace or locale module -- Full namespace / locale module support for all file types -- Support for object and array elements inside json arrays -- IDE integrated error report functionality +### Added +- Modularization supports namespace or locale module +- Full namespace / locale module support for all file types +- Support for object and array elements inside json arrays +- IDE integrated error report functionality -### Changed -- Improve exception handling on IO operations -- Update dependencies +### Changed +- Improve exception handling on IO operations +- Update dependencies -### Fixed -- Character unescaping for '.properties' files +### Fixed +- Character unescaping for '.properties' files - Exception on json files without any content ## [2.0.0] diff --git a/src/main/java/de/marhali/easyi18n/io/parser/json/JsonArrayMapper.java b/src/main/java/de/marhali/easyi18n/io/parser/json/JsonArrayMapper.java index 13477fc..da43c87 100644 --- a/src/main/java/de/marhali/easyi18n/io/parser/json/JsonArrayMapper.java +++ b/src/main/java/de/marhali/easyi18n/io/parser/json/JsonArrayMapper.java @@ -14,7 +14,7 @@ public class JsonArrayMapper extends ArrayMapper { public static String read(JsonArray array) { return read(array.iterator(), (jsonElement -> jsonElement.isJsonArray() || jsonElement.isJsonObject() - ? jsonElement.toString() + ? "\\" + jsonElement : jsonElement.getAsString())); } @@ -22,10 +22,8 @@ public class JsonArrayMapper extends ArrayMapper { JsonArray array = new JsonArray(); write(concat, (element) -> { - if(element.startsWith("{") && element.endsWith("}")) { - array.add(GSON.fromJson(element, JsonObject.class)); - } else if (element.startsWith("[") && element.endsWith("]")) { - array.add(GSON.fromJson(element, JsonArray.class)); + if(element.startsWith("\\")) { + array.add(GSON.fromJson(element.replace("\\", ""), JsonElement.class)); } else { array.add(element); }