update to json5-java 2.0.0

This commit is contained in:
marhali 2022-02-22 22:36:44 +01:00
parent 26a62159ef
commit a5e8375fe1
5 changed files with 12 additions and 15 deletions

View File

@ -25,7 +25,7 @@ repositories {
} }
dependencies { dependencies {
implementation("de.marhali:json5-java:1.0.1") implementation("de.marhali:json5-java:2.0.0")
} }
// Configure Gradle IntelliJ Plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin // Configure Gradle IntelliJ Plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin

View File

@ -22,7 +22,7 @@ public class Json5ArrayMapper extends ArrayMapper {
public static String read(Json5Array array) { public static String read(Json5Array array) {
return read(array.iterator(), (jsonElement -> { return read(array.iterator(), (jsonElement -> {
try { try {
return jsonElement.isJsonArray() || jsonElement.isJsonObject() return jsonElement.isJson5Array() || jsonElement.isJson5Object()
? "\\" + JSON5.serialize(jsonElement) ? "\\" + JSON5.serialize(jsonElement)
: jsonElement.getAsString(); : jsonElement.getAsString();
} catch (IOException e) { } catch (IOException e) {

View File

@ -11,7 +11,6 @@ import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.NumberUtils;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern;
/** /**
* Mapper for mapping json5 objects into translation nodes and backwards. * Mapper for mapping json5 objects into translation nodes and backwards.
@ -25,14 +24,14 @@ public class Json5Mapper {
TranslationNode childNode = node.getOrCreateChildren(key); TranslationNode childNode = node.getOrCreateChildren(key);
if(value.isJsonObject()) { if(value.isJson5Object()) {
// Nested element - run recursively // Nested element - run recursively
read(locale, value.getAsJsonObject(), childNode); read(locale, value.getAsJson5Object(), childNode);
} else { } else {
Translation translation = childNode.getValue(); Translation translation = childNode.getValue();
String content = value.isJsonArray() String content = value.isJson5Array()
? Json5ArrayMapper.read(value.getAsJsonArray()) ? Json5ArrayMapper.read(value.getAsJson5Array())
: StringUtil.escapeControls(value.getAsString(), true); : StringUtil.escapeControls(value.getAsString(), true);
translation.put(locale, content); translation.put(locale, content);

View File

@ -39,8 +39,8 @@ public class Json5ParserStrategy extends ParserStrategy {
try (Reader reader = new InputStreamReader(vf.getInputStream(), vf.getCharset())) { try (Reader reader = new InputStreamReader(vf.getInputStream(), vf.getCharset())) {
Json5Element input = JSON5.parse(reader); Json5Element input = JSON5.parse(reader);
if(input != null && input.isJsonObject()) { if(input != null && input.isJson5Object()) {
Json5Mapper.read(file.getLocale(), input.getAsJsonObject(), targetNode); Json5Mapper.read(file.getLocale(), input.getAsJson5Object(), targetNode);
} }
} }
} }

View File

@ -1,8 +1,6 @@
package de.marhali.easyi18n.mapper; package de.marhali.easyi18n.mapper;
import com.google.gson.JsonObject;
import de.marhali.easyi18n.io.parser.json.JsonArrayMapper; import de.marhali.easyi18n.io.parser.json.JsonArrayMapper;
import de.marhali.easyi18n.io.parser.json.JsonMapper;
import de.marhali.easyi18n.io.parser.json5.Json5ArrayMapper; import de.marhali.easyi18n.io.parser.json5.Json5ArrayMapper;
import de.marhali.easyi18n.io.parser.json5.Json5Mapper; import de.marhali.easyi18n.io.parser.json5.Json5Mapper;
import de.marhali.easyi18n.model.KeyPath; import de.marhali.easyi18n.model.KeyPath;
@ -66,10 +64,10 @@ public class Json5MapperTest extends AbstractMapperTest {
Json5Object output = new Json5Object(); Json5Object output = new Json5Object();
Json5Mapper.write("en", output, data.getRootNode()); Json5Mapper.write("en", output, data.getRootNode());
Assert.assertTrue(output.get("simple").isJsonArray()); Assert.assertTrue(output.get("simple").isJson5Array());
Assert.assertEquals(arraySimple, Json5ArrayMapper.read(output.get("simple").getAsJsonArray())); Assert.assertEquals(arraySimple, Json5ArrayMapper.read(output.get("simple").getAsJson5Array()));
Assert.assertTrue(output.get("escaped").isJsonArray()); Assert.assertTrue(output.get("escaped").isJson5Array());
Assert.assertEquals(arrayEscaped, StringEscapeUtils.unescapeJava(Json5ArrayMapper.read(output.get("escaped").getAsJsonArray()))); Assert.assertEquals(arrayEscaped, StringEscapeUtils.unescapeJava(Json5ArrayMapper.read(output.get("escaped").getAsJson5Array())));
TranslationData input = new TranslationData(true); TranslationData input = new TranslationData(true);
Json5Mapper.read("en", output, input.getRootNode()); Json5Mapper.read("en", output, input.getRootNode());