在JSON中嵌套时,重复键OK
考虑将包从一个地址传递到另一个地址的JSON表示。简化的在JSON中嵌套时,重复键OK,json,Json,考虑将包从一个地址传递到另一个地址的JSON表示。简化的 { "parcelId": 123, "source": { "street": "123 Main Street", "city": "Anytown", "state": "New York" }, "destination": { "street": "456 Avenue B", "city": "Elsewhere",
{
"parcelId": 123,
"source": {
"street": "123 Main Street",
"city": "Anytown",
"state": "New York"
},
"destination": {
"street": "456 Avenue B",
"city": "Elsewhere",
"state": "New Jersey"
}
}
我相当确信键“street”、“city”和“state”可以合法地嵌套在“source”和“destination”对象中。是否存在不应重复密钥名称的技术原因
是否存在不应重复密钥名称的技术原因
不,我觉得很合理
e、 g.如果我序列化一个Scala/Java对象,该对象可能看起来像:
class Delivery {
val parcelId : String
val source : Address
val destination : Address
}
而地址
对象的字段名在这里是相同的
是否存在不应重复密钥名称的技术原因
不,我觉得很合理
e、 g.如果我序列化一个Scala/Java对象,该对象可能看起来像:
class Delivery {
val parcelId : String
val source : Address
val destination : Address
}
而
地址
对象的字段名在这里是相同的。在JSON中,重复的属性键是不同对象的一部分,这没有什么错
您的JSON示例非常有效
这只是他们处于同一水平时的问题 例如,两个
源对象:
{
"parcelId": 123,
"source": {
"street": "123 Main Street",
"city": "Anytown",
"state": "New York"
},
"source": {
"street": "456 Avenue B",
"city": "Elsewhere",
"state": "New Jersey"
}
}
或一个对象内的两个街道
属性:
"source": {
"street": "456 Avenue B",
"street": "Elsewhere",
"state": "New Jersey"
}
拥有作为JSON中不同对象一部分的重复属性键没有什么错
您的JSON示例非常有效
这只是他们处于同一水平时的问题
例如,两个源对象:
{
"parcelId": 123,
"source": {
"street": "123 Main Street",
"city": "Anytown",
"state": "New York"
},
"source": {
"street": "456 Avenue B",
"city": "Elsewhere",
"state": "New Jersey"
}
}
或一个对象内的两个街道
属性:
"source": {
"street": "456 Avenue B",
"street": "Elsewhere",
"state": "New Jersey"
}
不。如果您有delivery.street
,然后是另一个delivery.street
,这会让人困惑。但你没有。您有delivery.source.street
和delivery.destination.street
。基本上,street
键现在正在寻址一个完全不同的对象。否。如果您有delivery.street
,然后是另一个delivery.street
,这将令人困惑。但你没有。您有delivery.source.street
和delivery.destination.street
。基本上,keystreet
现在正在寻址一个完全不同的对象。Short:No。是什么让你怀疑你能在JSON的不同部分重用这些键?Short:No。是什么让你怀疑你能在JSON的不同部分重用这些键?