C# 使用自定义映射C进行自定义JSON序列化#
我想序列化/反序列化以下JSON:C# 使用自定义映射C进行自定义JSON序列化#,c#,.net,C#,.net,我想序列化/反序列化以下JSON: { "result": { "ID": 1, "TITLE": "Example", "ARRAY": [ { "Item1": "Result1", "Item2": "Result2" } ] } } 我尝试了下面的类格式,但还没有成功。。。有人能帮我反序列化吗 p
{
"result": {
"ID": 1,
"TITLE": "Example",
"ARRAY": [
{
"Item1": "Result1",
"Item2": "Result2"
}
]
}
}
我尝试了下面的类格式,但还没有成功。。。有人能帮我反序列化吗
public class myClass
{
public string ID { get; set; }
[JsonProperty("TITLE")]
public string Name { get; set; }
}
obs.:在上面的示例类定义中,使用名称空间
Newtonsoft.JSON
,您已经调用了类myClass
,但是您必须调用它result
,因为ID
和TITLE
是给定示例中result
JSON的成员myClass
无法解析任何内容
我不知道您为什么想要一个名为Name
的属性,该属性映射到TITLE
,但是好的,如果您想这样做,可以在解决方案运行后修改它
不过,我们还没有完成。您还有一个名为ARRAY
的JSON成员,需要为此定义一个单独的类
还有另外一个问题:result
JSON嵌套在隐式基本对象中,因此我们也需要定义它。让我们称之为BaseResult
public class ARRAY
{
public string Item1 { get; set; }
public string Item2 { get; set; }
}
public class Result
{
public int ID { get; set; }
public string TITLE { get; set; }
public List<ARRAY> ARRAY { get; set; }
}
public class BaseResult
{
public Result result { get; set; }
}
公共类数组
{
公共字符串Item1{get;set;}
公共字符串Item2{get;set;}
}
公开课成绩
{
公共int ID{get;set;}
公共字符串标题{get;set;}
公共列表数组{get;set;}
}
公共类基结果
{
公共结果结果{get;set;}
}
如果您使用的是Visual Studio,则可以使用Edit>paste Special>paste JSON as class
将JSON复制并粘贴到任何*.cs文件中。它将生成表示JSON的POCO对象,在您的情况下是:
public class Rootobject
{
public Result result { get; set; }
}
public class Result
{
public int ID { get; set; }
public string TITLE { get; set; }
public ARRAY[] ARRAY { get; set; }
}
public class ARRAY
{
public string Item1 { get; set; }
public string Item2 { get; set; }
}
然后,假设JSON位于名为data
的字符串变量中,则可以按如下方式反序列化它:
var result= JsonConvert.DeserializeObject<Rootobject>(data);
var result=JsonConvert.DeserializeObject(数据);
您可以直接前往并粘贴json,它将为您生成类。