From 454e6b60d72ade95616ea7c08b87e7251886046d Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 8 May 2023 19:38:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Djson=E5=9C=A8ByteBuffer?= =?UTF-8?q?=E3=80=81InputSteam=E5=8F=82=E6=95=B0=E4=B8=8B=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=A7=A3=E5=86=B3=E6=95=B0=E7=BB=84=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/convert/json/JsonByteBufferReader.java | 3 ++- src/main/java/org/redkale/convert/json/JsonReader.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/redkale/convert/json/JsonByteBufferReader.java b/src/main/java/org/redkale/convert/json/JsonByteBufferReader.java index 683edc5e9..7fe884b61 100644 --- a/src/main/java/org/redkale/convert/json/JsonByteBufferReader.java +++ b/src/main/java/org/redkale/convert/json/JsonByteBufferReader.java @@ -132,6 +132,7 @@ public class JsonByteBufferReader extends JsonReader { if (ch == 'N' && nextChar() == 'U' && nextChar() == 'L' && nextChar() == 'L') { return null; } + int pos = this.position; StringBuilder sb = new StringBuilder(); sb.append(ch); char one; @@ -139,7 +140,7 @@ public class JsonByteBufferReader extends JsonReader { while ((one = nextChar()) != 0) sb.append(one); } catch (Exception e) { } - throw new ConvertException("a json object text must begin with '{' (position = " + position + ") but '" + ch + "' in (" + sb + ")"); + throw new ConvertException("a json object text must begin with '{' (position = " + pos + ") but '" + ch + "' in (" + sb + ")"); } /** diff --git a/src/main/java/org/redkale/convert/json/JsonReader.java b/src/main/java/org/redkale/convert/json/JsonReader.java index ad5a252c4..4168d7a0a 100644 --- a/src/main/java/org/redkale/convert/json/JsonReader.java +++ b/src/main/java/org/redkale/convert/json/JsonReader.java @@ -365,13 +365,13 @@ public class JsonReader extends Reader { if (nt == '}' || nt == ']') { return false; } - this.position--; + backChar(ch); return true; } if (ch == '}' || ch == ']') { return false; } - this.position--; // { [ 交由 readObjectB 或 readMapB 或 readArrayB 读取 + backChar(ch); // { [ 交由 readObjectB 或 readMapB 或 readArrayB 读取 return true; }