[英]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
false
和null
实际上,许多JSON解析器在序列化JSON对象时会忽略函数,例如许多浏览器实现的Javascript版本:
如果未定义,则在转换期间遇到函数或XML值时,将忽略它(在对象中找到它)或将其检查为空(在数组中找到它)。
因此,我不知道您是如何接收JSON的,但是正确地对其进行序列化是最好的解决方案,并且如果可以的话,它通常是最简单的。
如果您无法控制要接收的JSON ,则GSON允许您定义自定义反序列化器 ,这应该使您能够实际解析出您拥有的JSON,而不会引发异常。 显然,这将需要少量工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.