【发布时间】:2016-02-08 22:34:26
【问题描述】:
在与 EntityFramework 后端通信时,我正在使用 SwiftyJSON 序列化/反序列化 JSON 数据。问题是 - 对于某些端点,EF 希望看到“__type”属性以将其正确映射到后端的 .NET 类。而这个“__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!
])
顺序似乎总是相同的,但对于我在应用程序中的不同类来说它是不同的。对于其中一些人——不管我做什么——“__type”最终会出现在 JSON 属性的中间。
任何想法将不胜感激。不,我不能改变服务器。
【问题讨论】:
标签: json swift entity-framework wcf-ria-services swifty-json