JsonConvert.DeserializeObject 数组的数组
JsonConvert.DeserializeObject array of arrays
这与其他帖子类似,但我的变化是我的 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);
和其他各种变体。异常文本以 "Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'jsontest.RootObject' because the type requires a JSON object (e.g. {"name":"value"}) 开头以正确反序列化。"
您的 JSON 对应 List<List<InnerObject>>
而不是 RootObject[]
。 (对于后者,JSON 需要如下所示:[{ "InnerObjects" : [{"f1": 1, "f2": 2}] }]
)。
尝试像这样反序列化:
var list = JsonConvert.DeserializeObject<List<List<InnerObject>>>(json);
Fiddle: https://dotnetfiddle.net/ELnmfg
这与其他帖子类似,但我的变化是我的 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);
和其他各种变体。异常文本以 "Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'jsontest.RootObject' because the type requires a JSON object (e.g. {"name":"value"}) 开头以正确反序列化。"
您的 JSON 对应 List<List<InnerObject>>
而不是 RootObject[]
。 (对于后者,JSON 需要如下所示:[{ "InnerObjects" : [{"f1": 1, "f2": 2}] }]
)。
尝试像这样反序列化:
var list = JsonConvert.DeserializeObject<List<List<InnerObject>>>(json);
Fiddle: https://dotnetfiddle.net/ELnmfg