在Java中读取配置,JSON是一个选项吗?
我正在设置一个配置文件和系统来处理它。我的当前文件都是JSON,使用GSON库读取。我想做的是更改配置文件的一部分,这样我可以链接规则以添加更高级的逻辑 例如,配置部分看起来类似于假定它是JSON,但显然它的语法不正确:在Java中读取配置,JSON是一个选项吗?,java,json,gson,text-parsing,Java,Json,Gson,Text Parsing,我正在设置一个配置文件和系统来处理它。我的当前文件都是JSON,使用GSON库读取。我想做的是更改配置文件的一部分,这样我可以链接规则以添加更高级的逻辑 例如,配置部分看起来类似于假定它是JSON,但显然它的语法不正确: Parts: { { { Type: Keyword, Keywords: "a,b,c", UniqueOnly: true, Threshold: 2,
Parts: {
{
{
Type: Keyword,
Keywords: "a,b,c",
UniqueOnly: true,
Threshold: 2,
}
AND
{
Type: RegEx,
Pattern: "^(abc|123)$",
UniqueOnly: true,
Threshold: 2,
}
}
OR
{
Type: Keyword,
Keywords: "abc",
Threshold: 1
}
}
内部部分将能够适当地转换回类,但在规则之间,我希望有一个用于和以及或嵌套的选项。这是可以通过任何JSON/GSON解析器轻松实现的,还是更需要从头开始编写一个完全定制的阅读器?在这种情况下,我会使用有效的JSON,或者根本不使用JSON。我已经试着去做你想做的事,并把它放在上面。序列化和反序列化的结果JSON如下所示:
{
"combOperation": "OR",
"elements": [
{
"combOperation": "AND",
"elements": [
{
"regex": "^[a-zA-Z]*",
"uniqueOnly": false,
"threshold": 1
},
{
"keyWord": "BarFoo",
"uniqueOnly": false,
"threshold": 5
}
]
},
{
"keyWord": "FooBar",
"uniqueOnly": true,
"threshold": 2
}
]
}