JSON.decode() Unexpected ' encountered JSONTokenizer/parseError()错误分析
啥也不说了,再次说明用别人的东西一定要小心,as3corelib,用也要小心
使用环境:flash cs3
程序说话:
var str : String = "{a:'0',b:'0',c:''}";var obj : Object = JSON.decode(str);?出错,
Error: Unexpected a encounteredat XX.serialization::JSONTokenizer/parseError()at XX.serialization::JSONTokenizer/getNextToken()at XX.serialization::JSONDecoder/::nextToken()at XX..serialization::JSONDecoder/::parseObject()at XX.serialization::JSONDecoder/::parseValue()at XX..serialization::JSONDecoder$iinit()at XX..serialization::JSON$/decode()?
改一下:
var str : String = '{a:"0",b:"0",c:""}';var obj : Object = JSON.decode(str);?出错
Error: Unexpected a encounteredat XX.serialization::JSONTokenizer/parseError()at XX.serialization::JSONTokenizer/getNextToken()at XX.serialization::JSONDecoder/::nextToken()at XX..serialization::JSONDecoder/::parseObject()at XX.serialization::JSONDecoder/::parseValue()at XX..serialization::JSONDecoder$iinit()at XX..serialization::JSON$/decode()
?
再改一下:
var str : String = '{"a":"0","b":"0","c":""}';var obj : Object = JSON.decode(str);?好了,
?
再改一下:
var str : String = '{"a":0,"b":2,"c":3}';var obj : Object = JSON.decode(str);?也没报错
?
唉,看到了吧,对象属性名一定要是大引号,不然,嘿嘿,
字符串也要小引号包含大引号的形式,不然就会报错。
要找原因,可参见源代码,我是没时间看它了。
?
1 楼 huangxin5257 2010-02-09 我也遇到过同样的问题。不过没办法,用人家的东西就这样,得遵循别人的规则。