[英]I can't deserialize JSON object like I want
我有這樣的網絡回復:
[{
"st1": [
"folio1",
"folio2"
],
"st2": [
"folio1"
]
}]
這是調用我的Web服務器的代碼:
var response = await client.GetAsync(uri+"server/getSTFolios/");
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
var Item = JsonConvert.DeserializeObject<List<ST>>(content);
return Item;
}
這是ST課,反序列化我的回答
public class ST
{
private string v;
public ST(string v)
{
this.v = v;
}
public string st { get; set; }
public string location { get; set; }
public string note { get; set; }
public int pk { get; set; }
public List<Folio> folios { get; set; }
public override string ToString()
{
return "ST: " + st;
}
}
但是我無法獲取對象,無法反序列化。 我嘗試打印Item.ToString()
時獲得了此信息
System.Collections.Generic.List`1[test2.ST]
我猜這是因為您嘗試使用以下方式反序列化JSON對象
var Item = JsonConvert.DeserializeObject<List<ST>>(content);
但是您收到的響應與ST
類格式不同。
您正在嘗試轉換一個看起來像
{
"st1": ["folio1","folio2"],
"st2": ["folio1"]
}
對此
public class ST
{
public string st { get; set; }
public string location { get; set; }
public string note { get; set; }
public int pk { get; set; }
public List<Folio> folios { get; set; }
}
他們沒有任何財產或任何財產。 這就是為什么在調試和將鼠標懸停在Item
,您確實會在該列表中看到一個對象,但是所有值都為null。 JsonConvert.DeserializeObject
嘗試將您的響應轉換為ST
的格式,但是沒有找到匹配的屬性,只是創建了一個空的ST
。
如果您收到包含多個對象的回復,例如
[{
"st1": ["folio1","folio2"],
"st2": ["folio1"]
},
{
"st1": ["folio1","folio2"],
"st2": ["folio1"]
}]
將鼠標懸停在Item
,將有2個充滿空值的對象。
您需要使服務器使用類似於ST
類的對象進行響應。 例如,如果您的響應看起來像這樣,我認為它會起作用:
[{
"st": "some string",
"location": "some string",
"note": "some string",
"pk": 123,
"folios" :
[{
"pk": 123,
"number": "some string"
},
{
"pk": 123,
"number": "some string"
}]
}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.