C# 我创建的类是否正确?
我正在创建一个JSON文件来存储模板细节。每个模板有几个页面,每个页面有几个区域和协调 样板 下面是模板类C# 我创建的类是否正确?,c#,json,class,json.net,C#,Json,Class,Json.net,我正在创建一个JSON文件来存储模板细节。每个模板有几个页面,每个页面有几个区域和协调 样板 下面是模板类 class List<Template> { public string tempName { get; set; } public List<pageNumber> pages { get; set; } public List<pageDetails> pagesDetails { get; set; } publi
class List<Template>
{
public string tempName { get; set; }
public List<pageNumber> pages { get; set; }
public List<pageDetails> pagesDetails { get; set; }
public class pageNumber
{
}
public class pageDetails
{
public List<string> areaName { get; set; }
public List<string> Coordinate { get; set; }
}
}
您可以使用非附属的,只是一个风扇来快速地将示例JSON转换为类
对于您的输入,输出的坐标输入错误是固定的:
namespace QuickType
{
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public partial class ImageData
{
[JsonProperty("Template_Name")]
public string TemplateName { get; set; }
[JsonProperty("Page_Number")]
public List<PageNumber> PageNumber { get; set; }
}
public partial class PageNumber
{
[JsonProperty("Page_Details")]
public List<PageDetail> PageDetails { get; set; }
}
public partial class PageDetail
{
[JsonProperty("areaName")]
public string AreaName { get; set; }
[JsonProperty("coordinate")]
public string Coordinate { get; set; }
}
}
您的JSON不是非常有效的尾随逗号,属性名称应该在它们的周围有双引号,但是像NewtsonSoft.JSON这样的容错反序列化器会让您失望 但真正的问题是,与JSON相比,您的C类结构没有什么意义,您可以通过测试来证明自己。属性名称大多与JSON中的名称不匹配,并且您对列表和对象等内容感到非常困惑 这一结构将发挥作用:
public class PageDetail
{
public string areaName { get; set; }
public string coordiante { get; set; }
public string coordinate { get; set; }
}
public class PageNumber
{
public List<PageDetail> Page_Details { get; set; }
}
public class Template
{
public string Template_Name { get; set; }
public List<PageNumber> Page_Number { get; set; }
}
然后你就可以写了
List<Template> data = JsonConvert.DeserializeObject<List<Template>>(json);
假设JSON包含从文件读取的数据,则将JSON文本转换为C变量
使用静态字符串演示:
对转换站点稍加调整即可获得积分您尝试时发生了什么?我感觉pageNumber遗漏了什么。我做得对吗?我们怎么知道?代码做了它应该做的吗?你的问题是什么?你想知道你是否能够使用你的类来反序列化示例json吗?很酷的东西,比Visual Studio的“将json粘贴为类”功能要好得多。谢谢分享anks AKX,但是现在我在为它赋值时遇到了一些麻烦。
public class PageDetail
{
public string areaName { get; set; }
public string coordiante { get; set; }
public string coordinate { get; set; }
}
public class PageNumber
{
public List<PageDetail> Page_Details { get; set; }
}
public class Template
{
public string Template_Name { get; set; }
public List<PageNumber> Page_Number { get; set; }
}
List<Template> data = JsonConvert.DeserializeObject<List<Template>>(json);