【发布时间】:2020-11-12 11:04:14
【问题描述】:
好的,我们都知道有足够多的java库来匹配json对象,例如gson和jackson。 这些库可以做我需要的一切(比较嵌套、无序、“不完整”的对象)。但现在我正在尝试对我知道类型但不知道确切值的值使用占位符。我正在寻找一个准备好使用的 equalsWithTypePlaceholders(JSONObject object1, JSONObject object2) 方法。当然你可以自己做,我个人会读取对象,用占位符挑选键,检查它们是否匹配正确的类型,然后从 json 中删除这些键值对并使用任何库中的 equals() 方法。
假设我已经准备好了这个模式(object1)
[
{
"list": [
{
"id": "{int}",
"anotherlist": [
{
"name": "{string}",
"value": "abc"
}
],
"key": "{alphanumeric-string}",
"name": "{alphanumeric-string}"
}
],
"key1":"value2"
}
]
以下输入 (object2) 应返回 true,因为现有值匹配并且占位符已替换为正确的类型
[
{
"list": [
{
"id": "123",
"anotherlist": [
{
"name": "name",
"value": "abc"
}
],
"key": "123asd",
"name": "987asdas"
}
],
"key1":"value2"
}
]
以下输入 (object2) 应返回 false,因为现有值不匹配且 2 个占位符的类型错误
[
{
"list": [
{
"id": "hello",
"anotherlist": [
{
"name": "123",
"value": "abcde"
}
],
"key": "123asd",
"name": "312qwe"
}
],
"key1":"value2"
}
]
【问题讨论】: