From 78cdc2c88612f626d5a9ccfa56b46c8757ad307e Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 1 Jan 2023 19:07:37 +0700 Subject: [PATCH] =?UTF-8?q?ListAdapter=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BE=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=BE=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=201=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=20=D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/dbotthepony/kstarbound/io/json/ListAdapter.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ListAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ListAdapter.kt index 090ed74a..cb607551 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ListAdapter.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ListAdapter.kt @@ -16,6 +16,11 @@ class ListAdapter(val elementAdapter: TypeAdapter, val valueTransfor constructor(type: Class, valueTransformer: (T) -> T = { it }) : this(LazyTypeProvider(type), valueTransformer = valueTransformer) override fun write(out: JsonWriter, value: List) { + if (value.size == 1) { + elementAdapter.write(out, value[0]) + return + } + out.beginArray() for (v in value) { @@ -26,6 +31,11 @@ class ListAdapter(val elementAdapter: TypeAdapter, val valueTransfor } override fun read(reader: JsonReader): List { + if (reader.peek() != JsonToken.BEGIN_ARRAY) { + // не массив, возможно упрощение структуры "a": [value] -> "a": value + return ImmutableList.of(elementAdapter.read(reader) ?: throw JsonSyntaxException("List does not accept nulls")) + } + reader.beginArray() val builder = ImmutableList.builder()