C# JSON序列化数组报错

有没有对JSON比较熟悉的 先碰到如下问题
C# JSON 序列化 反序列化 问题
如下JSON数据怎么反序列化

img

只要是这种数组类型的数据执行就会报错

img

用的是Newtonsoft.Json库

img

img

有两种场景:

一、如果你的json字符串的最外层只是一个数组,则:

img

则使用List<User>,如下:

img

二、如果json字符串最外层还有属性名,如

img

则使用Root对象,如下:

img

用在线的json解析器,转换成对应的C#实体类。

https://www.cnblogs.com/yanweidie/p/4605212.html

你的 Root 类 怎么定义的?json 数组里面一个个json对象,也需要一个pojo类来承载

json 数组里面,一个 object 对象就对应一个 pojo 实体类,你在反序列化时候,pojo 类里面的字段要和 json 数组里面每个对象属性名称相同。

看了你的数据格式,把一个{}放进[]里,肯定解析失败了。

img

你的写法:

Root rt = TsonConvert.DeserializeObject<Root>(getJson);

改成这种试试:小编不懂java,😂😂😂😂,你试着改改

List<Root> rt =JsonConvert.DeserializeObject<List<Root>>(getJson);

回答引用 chatgpt

在 C# 中,你可以使用 Newtonsoft.Json 库将 JSON 字符串转换为 List 对象。下面是一个示例代码:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

namespace JsonToList
{
    class Program
    {
        static void Main(string[] args)
        {
            string json = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Jane\",\"age\":25,\"city\":\"London\"}]";

            List<Person> persons = JsonConvert.DeserializeObject<List<Person>>(json);

            foreach (Person person in persons)
            {
                Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, City: {person.City}");
            }
        }
    }

    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string City { get; set; }
    }
}

在上述示例中,我们首先引入 Newtonsoft.Json 命名空间,并定义了一个 Person 类作为 JSON 对象的映射。然后,我们使用 JsonConvert.DeserializeObject 方法将 JSON 字符串转换为 List 对象,将 JSON 字符串中的每个对象映射为 Person 对象。最后,我们遍历 List 对象,输出每个 Person 对象的属性值。

运行以上代码,输出将是解析后的 Person 对象的属性值。

请注意,你需要先在项目中添加对 Newtonsoft.Json 的引用,可以通过 NuGet 包管理器或者手动添加引用来获得 Newtonsoft.Json 库。

需要确保 JSON 字符串的格式与 Person 类的属性对应,这样才能正确地进行反序列化操作。

如果 JSON 字符串是嵌套的或者包含复杂的结构,你可以创建相应的类来映射 JSON 结构,并使用 Newtonsoft.Json 库的反序列化方法将 JSON 字符串转换为对应的对象或集合。

推荐个工具 https://json2csharp.com/

关于C#对Json进行序列化和反序列化的方法
可以参考下


C#中Json序列化和反序列化总结_c# jsonserializer_行者之剑的博客-CSDN博客 Json序列化和反序列化总结 JSON介绍1.什么是JSON?2.JSON基于两种结构:3.几种表现形式:4.序列化和反序列化的4中方式:JavaScriptSerializer类1.定义2.示例JSON介绍1.什么是JSON?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 JSON采用完全独立于程序语言的文本格式。这些特性使JSON成为理想的数据交换语言。2.JSON基于两种结构:_c# jsonserializer https://blog.csdn.net/jia380_csdn/article/details/120332758

https://www.yzktw.com.cn/post/1159932.html