JSON.parse错误#1132:无效的JSON解析输入(Flex / Actionscript / PHP)

时间:2012-07-28 22:10:53

标签: php json actionscript-3 flex parsing

我收到“错误#1132:无效的JSON解析输入”并且无法理解原因。

我的json是由php:json_encode($ x)生成的。 如果在TextArea(flex)中显示,则输出json显示:

{
   "title":"The Incredibles",
   "year":"2004",
   "type":"movie",
   "id":"9806",
   "imdb_id":"tt0317705",
   "rating":8.6,
   "tagline":"No gut, no glory",
   "overview":"Bob Parr has given up his superhero days to log in time as an insurance adjuster and raise his three children with his formerly heroic wife in suburbia. But when he receives a mysterious assignment, it\\'s time to get back into costume.",
   "runtime":115,
   "budget":92000000,
   "image":"http:\/\/cf2.imgobject.com\/t\/p\/w185\/jjAgMfj0TAPvdC8E5AqDm2BBeYz.jpg",
   "trailer":"rMfrFG_69zM"
}

我使用了几个验证器进行了验证,所有验证器都说它是有效的json。

在flex方面,我试图使用以下代码访问json:

JSON.parse(event.result.toString());

但得到错误。有人有这个问题吗?

编辑1:

似乎概述线是问题的所在,但我不明白为什么,因为我使用php json_encode,它应该正确地逃避...

4 个答案:

答案 0 :(得分:3)

\\'的转义序列似乎终止了JSON。

如果您想要“它”,

it\\'s应为it\'s

由于此JSON使用"表示字符串,因此可能只有:it's

JSON:

{
   "title":"The Incredibles",
   "year":"2004",
   "type":"movie",
   "id":"9806",
   "imdb_id":"tt0317705",
   "rating":8.6,
   "tagline":"No gut, no glory",
   "overview":"Bob Parr has given up his superhero days to log in time as an insurance adjuster and raise his three children with his formerly heroic wife in suburbia. But when he receives a mysterious assignment, it\'s time to get back into costume.",
   "runtime":115,
   "budget":92000000,
   "image":"http:\/\/cf2.imgobject.com\/t\/p\/w185\/jjAgMfj0TAPvdC8E5AqDm2BBeYz.jpg",
   "trailer":"rMfrFG_69zM"
}

答案 1 :(得分:2)

不知道你是否解决了这个问题,但是我也有同样的问题,今天终于解决了,问题是服务器端,返回json字符串的文件是 UTF8 < / strong>编码我转换它(通过记事本++)到 ANSI 并且一切正常)))。

答案 2 :(得分:1)

JSON没有问题,我知道这个问题已经有了答案,但这个答案适用于仍然面临以下错误消息的人:

  

语法错误:错误#1132:无效的JSON解析输入。

关于HTTPService选项,可能会导致错误的结果格式:尝试texte4x格式(它们是最方便的格式)并避免{ {1}}格式可能会在JSON输出中引入一些额外的字符,从而触发一些错误。

使用以下方法解析数据:

xml

并通过使用正确的var temp_obj:Object = JSON.parse(event.result as String); 调用HTTPService来触发JSON输出:

resultFormat

resultFormat="text"

答案 3 :(得分:0)

您的JSON是有效的,并且没有任何问题。这可能会对你有所帮助。在您的结果事件中更新您的代码,请参阅下面的内容。

    // Code
    var result:Object = JSON.parse( String(event.result) );
    trace( result['title'] );