我使用SwiftyJSON序列化/反序列化與EntityFramework後端通信時的JSON數據。問題是 - 對於某些端點,EF期望看到「__type」屬性將其正確映射到後端的.NET類。而這個「__type」屬性必須是是JSON對象的第一個屬性。SwiftyJSON順序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會在對象中移動得更低 - 服務器失敗。現在,我知道你不能保證字典中元素的順序,但是還有什麼可以解決的呢?
我創建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 - >字符串序列化我最終從我的JSON對象手動創建字符串。我討厭它,但它似乎是擺脫這個混亂的最簡單的方式。 – sha
當處理破碎的技術時,通常最好務實:) –