当前位置: 首页 > 面试题库 >

在C#中反序列化JSON数组(或列表)

厉文栋
2023-03-14
问题内容

这是基本代码:

public static string DeserializeNames()
{

    jsonData = "{\"name\":[{\"last\":\"Smith\"},{\"last\":\"Doe\"}]}";

    JavaScriptSerializer ser = new JavaScriptSerializer();

    nameList myNames = ser.Deserialize<nameList>(jsonData);

    return ser.Serialize(myNames);
}

//Class descriptions

public class name
{

   public string last { get; set; }

}

public class nameList
{

   public List<name> { get; set; }

}

我努力了:

nameList myNames = ser.Deserialize<nameList>(jsonData);

和:

List<name> myNames = ser.Deserialize<List<name>>(jsonData);

而且都不起作用。有人有主意吗?


问题答案:

该代码对我有用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;

namespace Json
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(DeserializeNames());
            Console.ReadLine();
        }

        public static string DeserializeNames()
        {
            var jsonData = "{\"name\":[{\"last\":\"Smith\"},{\"last\":\"Doe\"}]}";

            JavaScriptSerializer ser = new JavaScriptSerializer();

            nameList myNames = ser.Deserialize<nameList>(jsonData);

            return ser.Serialize(myNames);
        }

        //Class descriptions

        public class name
        {
            public string last { get; set; }
        }

        public class nameList
        {
            public List<name> name { get; set; }
        }
    }
}


 类似资料:
  • 我想解析这个json文件。 {“特征”:[{“类型”:“特征”,“几何”:“{“类型”:“多边形”,“坐标”:[[26.4217861898109,40.127607984644],[26.4219934821323,40.1275230229872],[26.4218810759267,40.1273800013679],[26.4216801413981,40.1274730404221],[

  • 我从 REST API 获得以下 JSON 作为响应。 并尝试使用下面的代码进行解析,但这不会导致正确的反序列化类型。 下面是我在JSON响应中收到的字段的类。 缺少了什么?

  • 我一直在做一个项目,需要通过JSON文件保存和加载数据。此 JSON 文件包含其他对象的各种列表。但是,当我继续反序列化文件时,会发生这种情况: 系统。NotSupportedException:不支持反序列化没有无参数构造函数、单一参数化构造函数或用“JsonConstructorAttribute”批注的参数化构造函数的类型。 处理反序列化的代码如下: 我想反序列化的类 JSON转换器 Sav

  • 问题内容: 我有以下需要反序列化的Json字符串。 第一个字段“ 123456789”是一个ID号,因此基本上该值可以根据要查询的数据而有所不同。 我在Visual Studio中使用C#。显然,因为第一个字段的值可以更改,所以我无法使用预定义的类将JSON反序列化为该字段,因为该字段将用作类名,但该字段的值与该类名不匹配。 有没有一种方法可以将其反序列化为某种动态类,但仍可以像访问预定义类一样访

  • 问题内容: 我在反序列化以下json数组时遇到麻烦(对不起,大小): 如果将其粘贴到json-viewer中,则会得到以下结构: 现在,包含具有坐标的数组的数组具有可变大小。所以我想在Java中,整个对象应该是一个数组,其中包含数组的集合,每个数组都包含一个。就像是 但是gson不接受这一点。我收到以下错误消息: 这似乎很奇怪,因为对我来说好像不像一个数组。但这可能使我感到困惑,或多或少地迷路了…

  • 我收到来自第3方服务提供商的JSON响应,其中包含一系列对象。当我尝试使用Jackson api反序列化JSON时。我收到以下异常 我的回答是 我的POJO课是这样的 我正在尝试使用以下代码反序列化JSON 如果我试着去做 它在BEGIN_对象本身失败。 如何使用数组读取和反序列化JSON。我应该编写自己的反序列化器吗? 编辑如果我使用JSON字符串而不是流,那么我就能够取回所有Java对象。但为