这与其他帖子相似,但我的变化是json对象以数组开始,我无法让它反序列化。
class Program
{
static void Main(string[] args)
{
var json = @"[[{""f1"":1, ""f2"":2}]]";
var obj = JsonConvert.DeserializeObject<RootObject[]>(json);
}
}
public class RootObject
{
public List<InnerObject> InnerObjects { get; set; }
}
public class InnerObject
{
public int f1 { get; set; }
public int f2 { get; set; }
}我也试过
JsonConvert.DeserializeObject<List<RootObject>>(json);以及其他各种变体。异常文本开头“不能将当前的JSON数组(例如,1,2,3)反序列化为'jsontest.RootObject‘类型,因为该类型需要一个JSON对象(例如{”名称“:”值“})才能正确反序列化。
发布于 2016-06-08 05:51:03
您的JSON对应于List<List<InnerObject>>,而不是RootObject[]。(对于后者,JSON需要如下所示:[{ "InnerObjects" : [{"f1": 1, "f2": 2}] }])。
尝试像这样反序列化:
var list = JsonConvert.DeserializeObject<List<List<InnerObject>>>(json);https://stackoverflow.com/questions/37693053
复制相似问题