如何将一组 JSON 对象转换为 C# 列表

LionsBlade321

我有一个看起来像这样的 JSON 文件:

{
    "foo": "bar",
    "pets": {
        "dog": {
            "name": "spot",
            "age": "3"
        },
        "cat": {
            "name": "wendy",
            "age": "2"
        }
    }
}

我想将其反序列化为 C# 类:

public class PetObject
{
    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("age")]
    public string Age { get; set; }
}

public class FooObject
{
    [JsonProperty("foo")]
    public string Foo { get; set; }

    [JsonProperty("pets")]
    public List<PetObject> Pets { get; set; }
}

使用这样的代码进行转换是行不通的,因为 pets 里面有多个对象,而且不是 JSON 数组。

//does not work
FooObject content = JsonConvert.DeserializeObject<FooObject>(json);

这是异常:

Newtonsoft.Json.JsonSerializationException
  HResult=0x80131500
  Message=Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[Test.PetObject]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Path 'pets.dog', line 4, position 10.

有没有办法将 pets 对象内的对象转换为对象数组?(除了在将 JSON 传递给 DeserializeObject 方法之前编辑它本身)

格罗克森

您的 JSON 文件包含一个宠物字典,而不是一个数组。因此,更改FooObject类:

public class FooObject
{
    [JsonProperty("foo")]
    public string Foo { get; set; }

    [JsonProperty("pets")]
    public Dictionary<string, PetObject> Pets { get; set; }

    // if you still need a list of pets, use this
    public List<PetObject> PetsList => Pets.Values.ToList();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON对象转换为C#列表

来自分类Dev

如何将Json数组转换为C#中的对象列表

来自分类Dev

如何将Json文件(包含数组)转换为(类对象的)列表C#Unity

来自分类Dev

如何将下面的json字符串转换为C#中的对象列表

来自分类Dev

如何将 Json 列表转换为键值对象

来自分类Dev

如何将JSON数组转换为C#列表?

来自分类Dev

如何将C#对象转换为JSON对象

来自分类Dev

C# 使用 newtonsoft json.net 将 json 数组转换为对象列表

来自分类Dev

Nifi JOLT:将JSON对象转换为JSON对象列表

来自分类Dev

如何将动态JSON转换为C#对象

来自分类Dev

C#中如何将Json转换为对象

来自分类Dev

将Json字符串转换为C#对象列表

来自分类Dev

将示例JSON请求主体(而非响应)转换为c#对象列表的语法是什么?

来自分类常见问题

Dart将JSON对象数组转换为对象列表

来自分类Dev

Dart将JSON对象数组转换为对象列表

来自分类Dev

C ++将json转换为对象

来自分类Dev

将json转换为c#对象

来自分类Dev

C#将MyType列表转换为对象列表

来自分类Dev

C# 如何将一组整数变量转换为字节数组?

来自分类Dev

如何将列表转换为json

来自分类Dev

Python:如何将一组包含逗号(表示为列表元素)的字符串转换为子列表?

来自分类Dev

将JSON对象列表转换为Django模型实例

来自分类Dev

将JSON数组转换为Java类对象列表

来自分类Dev

忽略列表时将JSON数据转换为Python对象

来自分类Dev

将每个元素的列表转换为JSON对象

来自分类Dev

Python-将JSON对象数据转换为列表

来自分类Dev

如何使用C#MVC4将SQL Server数据列表转换为结构化JSON对象

来自分类常见问题

如何将对象的json数组对象转换为该对象的Java 8可选列表

来自分类Dev

将 Json 对象列表的字符串转换为 JSON 对象列表

Related 相关文章

  1. 1

    将JSON对象转换为C#列表

  2. 2

    如何将Json数组转换为C#中的对象列表

  3. 3

    如何将Json文件(包含数组)转换为(类对象的)列表C#Unity

  4. 4

    如何将下面的json字符串转换为C#中的对象列表

  5. 5

    如何将 Json 列表转换为键值对象

  6. 6

    如何将JSON数组转换为C#列表?

  7. 7

    如何将C#对象转换为JSON对象

  8. 8

    C# 使用 newtonsoft json.net 将 json 数组转换为对象列表

  9. 9

    Nifi JOLT:将JSON对象转换为JSON对象列表

  10. 10

    如何将动态JSON转换为C#对象

  11. 11

    C#中如何将Json转换为对象

  12. 12

    将Json字符串转换为C#对象列表

  13. 13

    将示例JSON请求主体(而非响应)转换为c#对象列表的语法是什么?

  14. 14

    Dart将JSON对象数组转换为对象列表

  15. 15

    Dart将JSON对象数组转换为对象列表

  16. 16

    C ++将json转换为对象

  17. 17

    将json转换为c#对象

  18. 18

    C#将MyType列表转换为对象列表

  19. 19

    C# 如何将一组整数变量转换为字节数组?

  20. 20

    如何将列表转换为json

  21. 21

    Python:如何将一组包含逗号(表示为列表元素)的字符串转换为子列表?

  22. 22

    将JSON对象列表转换为Django模型实例

  23. 23

    将JSON数组转换为Java类对象列表

  24. 24

    忽略列表时将JSON数据转换为Python对象

  25. 25

    将每个元素的列表转换为JSON对象

  26. 26

    Python-将JSON对象数据转换为列表

  27. 27

    如何使用C#MVC4将SQL Server数据列表转换为结构化JSON对象

  28. 28

    如何将对象的json数组对象转换为该对象的Java 8可选列表

  29. 29

    将 Json 对象列表的字符串转换为 JSON 对象列表

热门标签

归档