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

用户名

我正在尝试将下面的json字符串转换为对象列表。我收到一个错误。你能帮忙吗?

string jsonp = @"{
  'data': [ { 'SectionId':1,'Name':'Bachelor ','NavigationRoute':'applicantExam/education','Position':15,IsEducation':true,'IsEducationCollegeDegree':null,'previousSection':null,'nextSection':null,'IsCurrent':null,'SectionCompleted':null},
            { 'SectionId':2,'Name':'Master','NavigationRoute':'applicantExam/education','Position':20,'IsEducation':true,'IsEducationCollegeDegree':null,'previousSection':null,'nextSection':null,'IsCurrent':null,'SectionCompleted':null} ] 
   }";

 ExamSectionModel[] m = JsonConvert.DeserializeObject<ExamSectionModel[]>(jsonp);
 foreach( var x in m)
 {
     Console.WriteLine(x.Name);
 }
布莱恩·罗杰斯(Brian Rogers)

您的考试部分数据数组不在JSON的根级别;这是data酒店内的一层楼。要解决此问题,您需要创建一个包装器类,然后反序列化为该类:

public class RootObject
{
    public ExamSectionModel[] Data { get; set; }
}

public class ExamSectionModel
{
    public int SectionId { get; set; }
    public string Name { get; set; }
    public string NavigationRoute { get; set; }
    public int Position { get; set; }
    public bool IsEducation { get; set; }
    public bool? IsEducationCollegeDegree { get; set; }
    public object previousSection { get; set; }
    public object nextSection { get; set; }
    public bool? IsCurrent { get; set; }
    public bool? SectionCompleted { get; set; }
}

然后:

RootObject root = JsonConvert.DeserializeObject<RootObject>(jsonp);
foreach(var x in root.Data)
{
    Console.WriteLine(x.Name);
}

小提琴:https : //dotnetfiddle.net/TUFouk

顺便说一句,您的JSON似乎在第一行'Position':15,之前和之后缺少引号IsEducation':true我假设这只是问题的错字,但是如果不是,您将需要在JSON中修复它,否则它将无法解析。

同样,从技术上讲,您应该在JSON中使用双引号,而不是单引号,以符合标准。(请参阅JSON.org。)JSON.net可以处理单引号,但其他解析器可能不会那么宽容。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将C#对象转换为.NET中的JSON字符串?

如何将类似 JSON 的字符串转换为 C# 对象

如何将Json字符串转换为c#类对象?

如何将json字符串转换为c#中的对象,然后动态访问它的属性?

如何将字符串转换为int,如下面的示例

我如何将 PHP 字符串转换为下面的数组结构

如何将json对象列表转换为包含每个对象中某些字段的字符串pojo列表?

java中如何将字符串转换为json字符串和对象

将JSON字符串转换为C#对象

将字符串转换为JSON对象C#

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

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

如何将分隔字符串转换为 C# 列表

将下面的字符串转换为NSArray

如何将JSON字符串转换为JAVA android中的对象

如何将列表中每条记录的 2 个属性从字符串转换为整数(通过从字符串中提取数字)C#

JS:如何将字符串转换为JS对象(**不**转换为JSON)?

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

如何将字符串转换为字符列表?

在下面的示例代码中,如何将函数输出显示为列表[a],而不是字符串,显示[a]

如何将字符串转换为时间字符串 C#

如何将C#字符串引用转换为Javascript字符串引用

如何将列表映射转换为json字符串和json到列表映射

C# JSON 将文件反序列化为对象列表失败,将字符串转换为集合错误

如何将列表中字符串中的每个单词转换为列表中的元素

C#:将字符列表转换为字符串

将 JSON 字符串数组转换为 C# 列表对象,为列表中模型的每个字段返回“空”值

如何将列表转换为字符串?

如何将字符串转换为数组列表