如何反序列化带有 Newtonsoft.json 的集合?
How to deserialize a collection with a collection with Newtonsoft.json?
我有一些 Json 内容包含一个数组,其中每个项目包含一个 object 数组。我正在寻找一种将其转换为 object 列表的方法。它只是 object 与 id 和 biCode 是我所追求的,他们的 parent 对我来说并不重要
我尝试了 https://json2csharp.com/ 网站,但根据输出,我需要为每个 parent object(“UselessText1”、“UselessText2”等)创建一个 Class,然后他们只包含 id 和 biCode。我尝试使用它,但是(正如我猜到的那样)它没有用
它抛出了这个异常:无法将当前 JSON object(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[Root]',因为该类型需要一个 JSON 数组(例如 [1,2,3])以正确反序列化。
这是json:
{
"UselessText1": [],
"UselessText2": [
{
"id": 2,
"biCode": "Something useful"
}
],
"UselessText3": [
{
"id": 3,
"biCode": "Something useful"
},
{
"id": 4,
"biCode": "Something useful"
}
]}
知道如何反序列化吗?我发现的任何 Google 结果都没有显示像我这样的情况。我可能不知道要搜索什么
试试这个
var json=...your json string
var deseializedJson = JsonConvert.DeserializeObject< Dictionary<string,UselessText[]>>(json);
var output = JsonConvert.SerializeObject(deseializedJson);
public class UselessText
{
public int id { get; set; }
public string biCode { get; set; }
}
输出
{"UselessText1":[],
"UselessText2":[{"id":2,"biCode":"Something useful"}],
"UselessText3":[{"id":3,"biCode":"Something useful"},{"id":4,"biCode":"Something useful"}]}
您的 Json 示例有点奇怪。您的对象似乎包含多个相同类型的属性。
对于这个 Json 应该有效的东西是:
public class MyModel{
public IEnumerable<MyEntity> UselessText1;
public IEnumerable<MyEntity> UselessText2;
public IEnumerable<MyEntity> UselessText3;
}
public class MyEntity{
public int Id;
public string BiCode;
}
我有一些 Json 内容包含一个数组,其中每个项目包含一个 object 数组。我正在寻找一种将其转换为 object 列表的方法。它只是 object 与 id 和 biCode 是我所追求的,他们的 parent 对我来说并不重要 我尝试了 https://json2csharp.com/ 网站,但根据输出,我需要为每个 parent object(“UselessText1”、“UselessText2”等)创建一个 Class,然后他们只包含 id 和 biCode。我尝试使用它,但是(正如我猜到的那样)它没有用
它抛出了这个异常:无法将当前 JSON object(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[Root]',因为该类型需要一个 JSON 数组(例如 [1,2,3])以正确反序列化。
这是json:
{
"UselessText1": [],
"UselessText2": [
{
"id": 2,
"biCode": "Something useful"
}
],
"UselessText3": [
{
"id": 3,
"biCode": "Something useful"
},
{
"id": 4,
"biCode": "Something useful"
}
]}
知道如何反序列化吗?我发现的任何 Google 结果都没有显示像我这样的情况。我可能不知道要搜索什么
试试这个
var json=...your json string
var deseializedJson = JsonConvert.DeserializeObject< Dictionary<string,UselessText[]>>(json);
var output = JsonConvert.SerializeObject(deseializedJson);
public class UselessText
{
public int id { get; set; }
public string biCode { get; set; }
}
输出
{"UselessText1":[],
"UselessText2":[{"id":2,"biCode":"Something useful"}],
"UselessText3":[{"id":3,"biCode":"Something useful"},{"id":4,"biCode":"Something useful"}]}
您的 Json 示例有点奇怪。您的对象似乎包含多个相同类型的属性。
对于这个 Json 应该有效的东西是:
public class MyModel{
public IEnumerable<MyEntity> UselessText1;
public IEnumerable<MyEntity> UselessText2;
public IEnumerable<MyEntity> UselessText3;
}
public class MyEntity{
public int Id;
public string BiCode;
}