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

标签 json actionscript-3 flash air

我有一个应用程序可以下载一个文件,然后将其解码为 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/

相关文章:

python - 如何在 python 中过滤 .json 数组,以便每个元素中仅显示一个参数?

actionscript-3 - as3 文本字段占位符

flash - 修剪透明 PNG 周围的空白

sockets - Flash 不再运行调试器。 Windows-10 中可能存在套接字问题吗?

flash - JavaFX 与 Flash 和 Flex 相比如何?

javascript - Polymer JS Polyfill 和 flash 兼容性

ios - Firebase 数据结构(最佳实践)

json - 基于对象类型的 Spring 集成对象转换器

json - Spring MVC 3.1.2 + jackson 2 : LazyInitializationException when lazily initialize a collection - no session or session was closed

flash - 如何避免出现凌乱的AS3代码