JSON 对象内元素的 SwiftyJSON 顺序
SwiftyJSON order of elements inside JSON object
我在与 EntityFramework 后端通信时使用 SwiftyJSON 到 serialize/deserialize JSON 数据。问题是 - 对于某些端点,EF 希望看到“__type”属性以将其正确映射到后端的 .NET class。而这个“__type”属性必须是JSON对象的第一个属性。
以下是有效载荷的示例:
"changeSet" : [
{
"OriginalEntity" : {
"__type" : "outside_vendors_to_events:#QPWebOffice.Web",
"revenue" : 0,
"transactions_count" : 23,
"id" : 8,
"vendor" : "New",
"event_id" : 4
},
"Operation" : 3,
"Entity" : {
"__type" : "outside_vendors_to_events:#QPWebOffice.Web",
"revenue" : 0,
"transactions_count" : 2,
"id" : 8,
"vendor" : "New",
"event_id" : 4
},
"Id" : 0
}
]
效果很好。但是,如果由于某种原因 __type 将在对象中降低 - 服务器失败。现在,我知道你不能保证字典中元素的顺序,但是还有什么办法可以解决呢?
我正在 Swift 中创建 JSON 对象,如下所示:
return JSON([
"__type": "outside_vendors_to_events:#QPWebOffice.Web",
"event_id": eventId,
"id": id,
"revenue": revenue,
"transactions_count": transactionCount,
"vendor": name == nil ? NSNull() : name!
])
顺序似乎总是一样的,但对于我在应用程序中的不同 classes 来说是不同的。对于其中一些 - 无论我做什么 - "__type" 将最终出现在 JSON 属性的中间。
如有任何想法,我们将不胜感激。不,我无法更改服务器。
字典在设计上在插入顺序上不稳定(迭代键时插入顺序无关紧要)EF 可以说在要求 JS 对象的顺序方面被破坏了,这也没有指定。也就是说,您也许可以使用类似以下问题的答案来解决问题:。除此之外,您需要自定义您的序列化操作(无论将您的 Dictionary 变成 JSON)以应对特殊情况。
我在与 EntityFramework 后端通信时使用 SwiftyJSON 到 serialize/deserialize JSON 数据。问题是 - 对于某些端点,EF 希望看到“__type”属性以将其正确映射到后端的 .NET class。而这个“__type”属性必须是JSON对象的第一个属性。
以下是有效载荷的示例:
"changeSet" : [
{
"OriginalEntity" : {
"__type" : "outside_vendors_to_events:#QPWebOffice.Web",
"revenue" : 0,
"transactions_count" : 23,
"id" : 8,
"vendor" : "New",
"event_id" : 4
},
"Operation" : 3,
"Entity" : {
"__type" : "outside_vendors_to_events:#QPWebOffice.Web",
"revenue" : 0,
"transactions_count" : 2,
"id" : 8,
"vendor" : "New",
"event_id" : 4
},
"Id" : 0
}
]
效果很好。但是,如果由于某种原因 __type 将在对象中降低 - 服务器失败。现在,我知道你不能保证字典中元素的顺序,但是还有什么办法可以解决呢?
我正在 Swift 中创建 JSON 对象,如下所示:
return JSON([
"__type": "outside_vendors_to_events:#QPWebOffice.Web",
"event_id": eventId,
"id": id,
"revenue": revenue,
"transactions_count": transactionCount,
"vendor": name == nil ? NSNull() : name!
])
顺序似乎总是一样的,但对于我在应用程序中的不同 classes 来说是不同的。对于其中一些 - 无论我做什么 - "__type" 将最终出现在 JSON 属性的中间。
如有任何想法,我们将不胜感激。不,我无法更改服务器。
字典在设计上在插入顺序上不稳定(迭代键时插入顺序无关紧要)EF 可以说在要求 JS 对象的顺序方面被破坏了,这也没有指定。也就是说,您也许可以使用类似以下问题的答案来解决问题: