在解码之前有没有办法验证JSON?

Dom*_*oSL 2 air flash json actionscript-3

我有一个应用程序下载文件,然后解码它期待一个JSON格式,当格式是好的一切顺利.如果我故意搞乱json文件flash报告格式错误并停止应用程序.有办法处理错误吗?

码:

import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

import com.adobe.serialization.json.JSON;


public class Main extends Sprite 
{

    private var _jsonPath:String = "json_example.txt";

    public function Main():void 
    {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event = null):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);

        var loader:URLLoader = new URLLoader();
        var request:URLRequest = new URLRequest();
        request.url = _jsonPath;
        loader.addEventListener(Event.COMPLETE, onLoaderComplete);
        loader.load(request);
    }


    private function onLoaderComplete(e:Event):void 
    {
        var loader:URLLoader = URLLoader(e.target);
            var jsonArray:Array = JSON.decode(loader.data);
  }
Run Code Online (Sandbox Code Playgroud)

您看到我的问题在最后,var jsonArray:Array = JSON.decode(loader.data);如果失败,我如何处理我的代码?

Tho*_*ten 7

使用try .. catch ...

import com.adobe.serialization.json.JSONParseError;

try
{
var jsonArray:Array = JSON.decode(loader.data);
}
catch ( e:JSONParseError )
{
    //do something
    trace(e);
}
finally
{
}
Run Code Online (Sandbox Code Playgroud)

此解决方案使用as3corelib(http://as3corelib.googlecode.com/),如果您使用JSON.parse(),请查看JayC的答案