我正在尝试导入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; }
}发布于 2015-02-06 20:11:33
假设您的对象和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上迭代。
发布于 2015-02-06 20:12:39
您正在反序列化一个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
}https://stackoverflow.com/questions/28373752
复制相似问题