我有一个应用程序可以下载一个文件,然后将其解码为 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);
}
你看到我的问题就在最后 var jsonArray:Array = JSON.decode(loader.data);
如果失败,我该如何处理我的代码?
最佳答案
使用 try..catch...
import com.adobe.serialization.json.JSONParseError;
try
{
var jsonArray:Array = JSON.decode(loader.data);
}
catch ( e:JSONParseError )
{
//do something
trace(e);
}
finally
{
}
此解决方案使用 as3corelib ( http://as3corelib.googlecode.com/ ),如果您使用 JSON.parse() 请检查 JayC 的答案
关于json - 有没有办法在解码前验证 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14916205/