是否有另一種方法來跟蹤每個字段的編寫自己的逆變器未編組?
我基於JSON的消息來更新我的本地數據和我的問題是(簡體): 我期待JSON像TJSONUnMarshal:如何跟蹤什麼是實際解組
{ "items": [ { "id":1, "name":"foobar", "price":"12.34" } ] }
它通過
UnMarshaller.TryCreateObject(TItems, TJsonObject(OneJsonElement), TargetItem )
然後取消封送類TItems我的問題是,我不能讓
{ "items": [ { "id":1, "name":"", "price":"12.34" } ] }
和
之間的差異{ "items": [ { "id":1, "price":"12.34" } ] }
在這兩種情況下,名稱是空白的,我想只更新json消息傳遞的那些字段。當然,我可以爲每個領域創建一個回覆,但是有很多字段和消息,所以它非常龐大。
我試圖尋找REST.Jsonreflect.pas源碼,但沒有意義。
我使用的Delphi 10.
在JSON規範中,空值與空字符串之間存在差異。你想要什麼? – Erwin
感謝您的回覆。 在這個例子中,我不想知道名稱字段實際上是否存在於json中。這是因爲客戶端應用只發送json中的關鍵字段和修改字段。而且由於Unmarshaller通過類字段不會調用屬性設置器。 我想知道如果我能以某種方式定製unmarshaller。我查看源代碼並注意到有JsonReflectAttribute屬性,但我無法理解如何使用它。 – MikaK