论坛首页 编程语言技术论坛

JSON.decode() Unexpected ' encountered JSONTokenizer/parseError()错误分析

浏览 5000 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-22  

啥也不说了,再次说明用别人的东西一定要小心,as3corelib,用也要小心

使用环境:flash cs3

程序说话:

var str : String = "{a:'0',b:'0',c:''}";
var obj : Object = JSON.decode(str);

 出错,

Error: Unexpected a encountered
	at 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 encountered
	at 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);

 也没报错

 

唉,看到了吧,对象属性名一定要是大引号,不然,嘿嘿,

字符串也要小引号包含大引号的形式,不然就会报错。

要找原因,可参见源代码,我是没时间看它了。

 

   发表时间:2010-02-09  
我也遇到过同样的问题。不过没办法,用人家的东西就这样,得遵循别人的规则。

但在decode的时候,必须要try catch。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics