我使用Newtonsoft的JSON解析器來解析來自外部系統(外部系統不是.net,因此它們使用不同的序列化庫)的結果。如何用奇怪的數組解析這個JSON
JSON字符串看起來很有趣。該端點用於/客戶端,但不是返回一個客戶端資源數組,而是返回一個包含數組的命名對象。就像這樣:
{"Client": [{"ClientId":"TheId"}]}
如果我嘗試反序列化到客戶端陣列,它失敗的異常:
Client[] clients = serializer.Deserialize<Client[]>(aReaderWithTheJson)
例外:
無法反序列化當前的JSON對象...要解決此錯誤,請將JSON更改爲JSON數組(例如[1,2,3])或更改 反序列化類型,以使其成爲正常的.NET類型
我得到它通過創造一個人工的包裝類我的目標對象,像這樣成功反序列化:
class ClientArray
{
public Client[] Client {get;set;}
}
// then deserialize:
var clientWrapper = serializer.Deserialize<ClientArray>(theReader);
var client = clientWrapper.Client[0];
我的問題,雖然:雖然這個工程,是否有JSON.net的一些特徵我不知道應該看看(某種序列化助手,還是可以用我的DTO裝飾的屬性?)。