我使用api工作,它返回數據庫查詢的json格式的結果集。 我有一個等效的對象或「模型」的結果。 將json字符串轉換爲此對象列表的最佳方式是什麼?將json字符串轉換爲C#中現有對象的列表#
當然有很多關於此的線索,但沒有人適合我的需要。
一個我已經找到了解決辦法是這樣的:
var jobj = (JObject)JsonConvert.DeserializeObject(json);
var items = jobj.Children()
.Cast<JProperty>()
.Select(j => new
{
ID = j.Name,
Topic = (string)j.Value["Topic_ID"],
Moved = (string)j.Value["Moved_ID"],
Subject = (string)j.Value["subject"],
})
.ToList();
這似乎很接近我所需要的。我需要能夠將鍵/值映射到已經存在的適當對象屬性。所以也許你只需要改變一些東西來使它適用於我的對象? PS:我正在使用Newtonsoft。任何針對.NET或Newtonsoft的解決方案或者如果需要任何其他庫都會很棒!
如果json屬性和最終對象屬性不完全匹配,我會創建一個DTO(DataTransferObject)來匹配json,從json加載到DTO中,然後將DTO轉換爲最終對象。一個額外的步驟,但有點清潔(像AutoMapper這樣的工具也可以在這裏幫助一點) – jleach
你可能想說爲什麼沒有現有的線程符合你的問題。閱讀你的問題我猜可能是因爲你的模型對象成員名稱與JSON對象的名稱不匹配,但不清楚是這種情況。 – sebf
[將JSON數據反序列化爲使用JSON.NET的C#]可能的重複(http://stackoverflow.com/questions/2546138/deserializing-json-data-to-c-sharp-using-json-net) –