Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

字符串反序列化时出现bug #27

Closed
bitterzzZZ opened this issue Apr 20, 2022 · 2 comments
Closed

字符串反序列化时出现bug #27

bitterzzZZ opened this issue Apr 20, 2022 · 2 comments
Labels
bug Something isn't working
Milestone

Comments

@bitterzzZZ
Copy link

反序列化时,对字符串中的反斜杠 \ 判定为后一个字符的转义,从而反序列化出错
测试代码如下

char a = 0x5c;
HashMap<Object, Object> hashMap = new HashMap<>();
hashMap.put("1",a);

String string = JSON.toJSONString(hashMap);
System.out.println(string);
JSON.parse(string);

输出结果和报错信息如下

{"1":"\"}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
	at com.alibaba.fastjson2.JSONReaderUTF16.readString(JSONReaderUTF16.java:1211)
	at com.alibaba.fastjson2.reader.ObjectReaderImplMap.readObject(ObjectReaderImplMap.java:390)
	at com.alibaba.fastjson2.reader.ObjectReaderImplObject.readObject(ObjectReaderImplObject.java:21)
	at com.alibaba.fastjson2.JSON.parse(JSON.java:22)
	at com.bitterz.test.main(test.java:35)

hashmap中放入其它键值对时报错不同

ArrayList<Object> list = new ArrayList<>();
list.add("123");
list.add("123");
char a = 0x5c;
HashMap<Object, Object> hashMap = new HashMap<>();
hashMap.put("1",a);
hashMap.put(list, 1);

String string = JSON.toJSONString(hashMap);
System.out.println(string);
JSON.parse(string);

输出结果和报错内容如下

{"1":"\","[123, 123]":1}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
	at com.alibaba.fastjson2.JSONReaderUTF16.readFieldName(JSONReaderUTF16.java:510)
	at com.alibaba.fastjson2.reader.ObjectReaderImplMap.readObject(ObjectReaderImplMap.java:352)
	at com.alibaba.fastjson2.reader.ObjectReaderImplObject.readObject(ObjectReaderImplObject.java:21)
	at com.alibaba.fastjson2.JSON.parse(JSON.java:22)
	at com.bitterz.test.main(test.java:25)
@wenshao wenshao added the bug Something isn't working label Apr 20, 2022
@wenshao wenshao added this to the 2.0.2 milestone Apr 20, 2022
@wenshao
Copy link
Member

wenshao commented Apr 20, 2022

处理Character类型的特殊字符时结果不对,已经修复。

@wenshao
Copy link
Member

wenshao commented May 2, 2022

https://github.com/alibaba/fastjson2/releases/tag/2.0.2
问题已修复,请使用新版本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants