我要進行一個非常簡單的反序列化。基本上我所做的就是檢索以下 json 并反序列StorageAccountListKeysResult化Microsoft.Azure.Management.Storage.Models:
{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key1\",\"value\":\"qzyyzfNe1bkhBeOVYNXiQ6BjVlDnLsnDWhVqhTrD6whPE78kf/1A/jNeQsUjMvQVnl3dtdKxZmsuMjlx3ru7Q==\",\"permissions\":\"FULL\"},{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key2\",\"value\":\"t 4ao7yMyWvqoiSjrNCH5gPtDC7 Qnow2SdPoFXzOXkPyBrOex/BVUPXtGFW78XAXrQ7ITDZnC8RIyXe5jVaQ==\",\"permissions\":\"FULL\"}
我多次檢查了 json 結果并與模型進行了比較,對我來說似乎一切都很好,但是我null從反序列化中得到了結果。
這是代碼:
var serializerOptions = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
var json = "{\"Keys\":[{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key1\",\"value\":\"qzyyzfNe1bkhBeOVYNXiQ6BjVlDnLsnDWhVqhTrD6whPE78kf/1A/jNeQsUjMvQVnl3dtdKxZmsuMjlx3ru7Q==\",\"permissions\":\"FULL\"},{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key2\",\"value\":\"t 4a7oyMyWvqoiSjrNCH5gPtDC7 Qnow2SdPoFXzOXkPyBrOex/BVUPXtGFW78XAXrQ7ITDZnC8RIyXe5jVaQ==\",\"permissions\":\"FULL\"}]}";
var listKeys = JsonSerializer.Deserialize<StorageAccountListKeysResult>(json, serializerOptions); // returns null
我錯過了什么?
編輯:
我剛剛意識到 的屬性StorageAccountListKeysResult沒有設定器。
uj5u.com熱心網友回復:
請嘗試Keys將 JSON 中的屬性更改為keys. 你json應該看起來像:
var json = "{\"keys\":[{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key1\",\"value\":\"qzyyzfNe1bkhBeOVYNXiQ6BjVlDnLsnDWhVqhTrD6whPE78kf/1A/jNeQsUjMvQVnl3dtdKxZmsuMjlx3ru7Q==\",\"permissions\":\"FULL\"},{\"creationTime\":\"2021-12-17T12:26:19.5708372Z\",\"keyName\":\"key2\",\"value\":\"t 4a7oyMyWvqoiSjrNCH5gPtDC7 Qnow2SdPoFXzOXkPyBrOex/BVUPXtGFW78XAXrQ7ITDZnC8RIyXe5jVaQ==\",\"permissions\":\"FULL\"}]}";
參考:https : //docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.storage.models.storageaccountlistkeysresult.keys?view=azure-dotnet#Microsoft_Azure_Management_Storage_Models_StorageAccountListKeysResult_Keys
[Newtonsoft.Json.JsonProperty(PropertyName="keys")]
public System.Collections.Generic.IList<Microsoft.Azure.Management.Storage.Models.StorageAccountKey> Keys { get; }
uj5u.com熱心網友回復:
問題是通過使用解決的Newtonsoft。Microsoft 使用 Newtonsoft for StorageAccountListKeysResult,所以我想這就是問題所在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/387255.html
