我很难用C#asp.net解析json响应。主要是在此响应的数组结构中使用数组。我编辑了帖子以反映json对象。我想我们可以省略反序列化代码。
{"Level1":
[
{
A:"some",
B:"more",
C:"stuff"
}
],"DataLevel":
[[
{ "AnotherLevel":
{
"File":"data"
},
"More":"stuff"
}
]]}
// C# code
public class JsonObject
{
public Level1[] level1 {get;set;}
public DataLevel[] datalevel {get;set;}
}
public class Level1
{
public string A {get;set;}
public string B {get;set;}
public string C {get;set;}
}
public class DataLevel
{
// ??
// Seems like this should be public AnotherLevel anotherlevel {get;set;}
public string More {get;set;}
}
答案 0 :(得分:0)
好的,看看你的数据,我会说你的课程定义与你发布的json不符。仔细看看它。您有一个具有2个属性的对象。一个是对象数组,另一个是对象数组。下面我有一组不同的类定义可以解决你的问题。
public class OuterObject
{
public FirstArrayObject[];
public List<ObjInNestedArray[]>;
}
public class FirstArrayObject
{
public string A;
public string B;
public string C;
}
public class ObjInNestedArray
{
string property1;
AnotherLevel AnotherLevel;
}
public class AnotherLevelObj
{
string prop1;
}
OuterObject response = JsonConvert.DeserializeObject<OuterObject>(responseBodyAsString);
答案 1 :(得分:0)
我不知道这有多好,也没有检查它是否真的正确但您可以试试这个网站http://json2csharp.com/,但它可能会对您有所帮助!
这是我使用您提供的json数据时得到的结果:
class Level1
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
public class RootObject
{
public List<Level1> Level1 { get; set; }
public List<List<>> DataLevel { get; set; }
}