繁体   English   中英

使用GSON解析JS(带有函数)

[英]parsing JS (with functions) using GSON

我有一堆包含Javascript的文件,这些文件存储配置元数据,我想使用GSON(2.2.4)将它们解析为Java对象,以供应用程序读取。 这适用于简单的名称/值对,但是如果我的JS文件具有功能,则GSON当然会引发异常:

[
    {
        text:'Cost',
        renderer:function(value)
        { 
           return 0; 
        }   

    },  ...

com.google.gson.stream.MalformedJsonException: Expected ':' at line 4 column 38

我想知道是否有办法让GSON解析这种类型的JS文件,即使它必须完全忽略函数并仅解析简单的名称/值对也是如此? 我想我需要对输入进行一些预处理?

从技术上讲,函数不是规范中 JSON格式表示的数据类型,而是:

string number object array true falsenull

实际上,许多JSON解析器在序列化JSON对象时会忽略函数,例如许多浏览器实现的Javascript版本:

如果未定义,则在转换期间遇到函数或XML值时,将忽略它(在对象中找到它)或将其检查为空(在数组中找到它)。

因此,我不知道您是如何接收JSON的,但是正确地对其进行序列化是最好的解决方案,并且如果可以的话,它通常是最简单的。

如果您无法控制要接收的JSON ,则GSON允许您定义自定义反序列化器 ,这应该使您能够实际解析出您拥有的JSON,而不会引发异常。 显然,这将需要少量工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM