fastjson特殊字符报 illegal identifier : $ @wenshao

llxi 发布于 2016/06/21 21:51
阅读 8K+
收藏 0

执行下面代码:

JSONObject j = JSONObject.parseObject("{$group:'type'}");

异常信息

Exception in thread "main" com.alibaba.fastjson.JSONException: illegal identifier : $
at com.alibaba.fastjson.parser.JSONLexerBase.scanSymbolUnQuoted(JSONLexerBase.java:847)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:267)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1236)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1205)
at com.alibaba.fastjson.JSON.parse(JSON.java:108)
at com.alibaba.fastjson.JSON.parse(JSON.java:99)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:170)
at mongo.Test.main(Test.java:10)

这个怎么解决 @wenshao

加载中
0
zheng_pat
zheng_pat
JSONObject j = JSONObject.parseObject("{\"$group\":'type'}");
0
llxi
llxi

引用来自“zheng_pat”的评论

JSONObject j = JSONObject.parseObject("{\"$group\":'type'}");
$group,是手工输入的,没有引号
_kolnick
_kolnick
回复 @llxi : 你要先理解JSON 格式是怎么样的 。。
llxi
llxi
回复 @zheng_pat : 就是$符号导致出错了,如果去掉$符号的号是可以解析的
zheng_pat
zheng_pat
json把对象转字符串格式的时候就会带上双引号,如果手工输入的话,你连json教研都不过吧。
0
不语之禅
不语之禅
手工输入的又不是不能加引号
0
llxi
llxi

引用来自“不语之禅”的评论

手工输入的又不是不能加引号
如果不加引号的话,是否有办法能够解决呢,有没有什么配制使之兼容$符号
0
风筝上的少年
风筝上的少年

你这根本就不是JSON的啊,凭什么要求JSON不报错??本末倒置啊。

首先,JSON的键值是双引号,不是单引号,单引号绝对是错误的。

$group不加双引号就是错的。

0
zzuqiang
zzuqiang
不是json对象吧
0
分流砥柱
分流砥柱
先在jsonlint里验证一下你的json格式数据是否正确。
0
llxi
llxi

引用来自“风筝上的少年”的评论

你这根本就不是JSON的啊,凭什么要求JSON不报错??本末倒置啊。

首先,JSON的键值是双引号,不是单引号,单引号绝对是错误的。

$group不加双引号就是错的。

如果把$符号去掉就是对的
返回顶部
顶部