From 95e207fd349e97c4511b241fb07d57e1fe04b6a9 Mon Sep 17 00:00:00 2001 From: redkale Date: Wed, 23 Oct 2024 09:43:03 +0800 Subject: [PATCH] json --- src/main/java/org/redkale/convert/ObjectDecoder.java | 8 ++++---- src/main/java/org/redkale/convert/json/JsonConvert.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/redkale/convert/ObjectDecoder.java b/src/main/java/org/redkale/convert/ObjectDecoder.java index 80096be9a..880f01fb1 100644 --- a/src/main/java/org/redkale/convert/ObjectDecoder.java +++ b/src/main/java/org/redkale/convert/ObjectDecoder.java @@ -374,7 +374,7 @@ public class ObjectDecoder implements Decodeable { DeMemberInfo info = this.memberInfo; if (this.creatorConstructorMembers == null) { // 空构造函数 final T result = this.creator == null ? null : this.creator.create(); - while (in.hasNext()) { + do { DeMember member = in.readField(info); in.readColon(); if (member == null) { @@ -383,7 +383,7 @@ public class ObjectDecoder implements Decodeable { Object val = readDeMemberValue(in, member); member.getAttribute().set(result, val); } - } + } while (in.hasNext()); in.readObjectE(typeClass); return result; } else { // 带参数的构造函数 @@ -391,7 +391,7 @@ public class ObjectDecoder implements Decodeable { final Object[] constructorParams = new Object[constructorFields.length]; final Object[][] otherParams = new Object[info.length()][2]; int oc = 0; - while (in.hasNext()) { + do { // in.hasNext()放在下面,因readObjectB已经读了{ DeMember member = in.readField(info); in.readColon(); if (member == null) { @@ -410,7 +410,7 @@ public class ObjectDecoder implements Decodeable { otherParams[oc++] = new Object[] {member.attribute, val}; } } - } + } while (in.hasNext()); in.readObjectE(typeClass); if (this.creator == null) { return null; diff --git a/src/main/java/org/redkale/convert/json/JsonConvert.java b/src/main/java/org/redkale/convert/json/JsonConvert.java index db9e95480..4fe263d4c 100644 --- a/src/main/java/org/redkale/convert/json/JsonConvert.java +++ b/src/main/java/org/redkale/convert/json/JsonConvert.java @@ -184,7 +184,7 @@ public class JsonConvert extends TextConvert { if (text == null) { return null; } - return convertFrom(type, Utility.charArray(text)); + return convertFrom(type, new JsonReader(text)); } public T convertFrom(final Type type, final char[] text) {