这个问题已经在这里有了答案: > Are JSON schemas necessary for defining the structure of a JSON? 2个
我遇到了一个API,它为“ fieldValue”返回不同类型的值,如下所示:
{
"id" : 123,
"fieldType" : "text",
"fieldValue" : "some test"
}
{
"id" : 456,
"fieldType" : "checkbox",
"fieldValue" :
[
{
"checkboxId" : 1,
"name" : "Homer"
},
{
"checkboxId" : 2,
"name" : "Marge"
}
]
}
{
"id" : 789,
"fieldType" : "Select",
"fieldValue" : {
"selectId" : 3,
"value" : "Lisa"
}
}
我正在使用GSON,它不喜欢“ fieldValue”可以是String或对象或数组的事实.我已经编写了自定义解串器来解析它.
我的问题是,JSON规范是否允许JSON对象具有宽松定义的值类型,这意味着fieldValue类型可以是String,对象数组或对象?
解决方法:
JSON specification仅提及JSON对象的语法,没有提及语义.因此,解析器将不会检查给定值应为A还是B类型.它将读取任何可用值,并且如果语法损坏,将报告错误.由您的应用程序来验证内容并做出相应的反应.