[英]How to get values from Deserialized JSON object?
我正在嘗試導入JSON,進行解析並能夠在我的整個應用程序中使用它。 例如,我想循環瀏覽並能夠打印出年份。 我將如何去做?
代碼 :
var result = await content.ReadAsStringAsync ();
try
{
List<RootObject> list = (List<RootObject>)JsonConvert.DeserializeObject<List<RootObject>>(result);
}
catch (Exception e) {
Console.WriteLine (e);
}
JSON :
{
"ROWCOUNT": 3,
"COLUMNS": [
"YEARMFG",
"MAKE",
"MODEL",
"ENGINE",
"TOWLIMIT",
"NOTE1",
"NOTE2"
],
"DATA": {
"YEARMFG": [
2012,
2012,
2012
],
"MAKE": [
"Chevrolet/GMC",
"Chevrolet/GMC",
"Chevrolet/GMC"
],
"MODEL": [
"Avalanche 1500 4WD",
"Avalanche 1500 4WD",
"Avalanche 1500 4WD"
],
"ENGINE": [
"5.3L V-8",
"5.3L V-8",
"5.3L V-8"
],
"TOWLIMIT": [
5000,
5500,
8000
],
"NOTE1": [
"3.08 axle ratio",
"3.42 axle ratio",
"3.42 axle ratio"
],
"NOTE2": [
"",
"",
"Cooling or other accessory package required "
]
}
}
類別:
public class DATA
{
public List<int> YEARMFG { get; set; }
public List<string> MAKE { get; set; }
public List<string> MODEL { get; set; }
public List<string> ENGINE { get; set; }
public List<int> TOWLIMIT { get; set; }
public List<string> NOTE1 { get; set; }
public List<string> NOTE2 { get; set; }
}
public class RootObject
{
public int ROWCOUNT { get; set; }
public List<string> COLUMNS { get; set; }
public DATA DATA { get; set; }
}
假設您的對象和GetJson()
僅返回JSON字符串:
var obj = JsonConvert.DeserializeObject<RootObject>(GetJSON());
foreach (var year in obj.DATA.YEARMFG)
{
Console.WriteLine("Year: {0}", year);
}
哪個應該輸出(基於您的樣本數據):
Year: 2012
Year: 2012
Year: 2012
旁注:您不必反序列化為List<RootObject>
。 RootObject
應該是單個實體(因為它包裝了您的整個JSON數據)。 因此,只需將其反序列化為單個實例,然后訪問DATA
屬性並在YEARMFG
進行迭代YEARMFG
。
您正在反序列化List<RootObject>
,因此List
中的每個元素都是一個RootObject
。 您可以在類中看到RootObject
具有DATA
屬性,該屬性包含YEARMFG
的List<string>
。
您應該能夠像這樣訪問list
的項目:
list.DATA.YEARMFG
將為您提供給定項目的年份列表。
如果要單獨顯示它們,可以遍歷列表:
foreach (var yr in list.DATA.YEARMFG)
{
// handle individual year info here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.