C# 反序列化简单字符串
我确信我遗漏了一些非常明显的东西,我读过不同的文章(比如一篇,还有最后一篇),但我仍然找不到答案 以下是我的课程:C# 反序列化简单字符串,c#,asp.net-core,json.net,C#,Asp.net Core,Json.net,我确信我遗漏了一些非常明显的东西,我读过不同的文章(比如一篇,还有最后一篇),但我仍然找不到答案 以下是我的课程: using System; using Newtonsoft.Json; namespace WebAPIClient { public class XWTournament { private string name; [JsonProperty("name")] public string Name { get => name; set
using System;
using Newtonsoft.Json;
namespace WebAPIClient
{
public class XWTournament
{
private string name;
[JsonProperty("name")]
public string Name { get => name; set => name = value; }
}
public class Root
{
public XWTournament xwtournam { get => xwtournam; set => xwtournam = value; }
}
}
在这里,我尝试使用它们:
msg = "{\"tournament\": {\"Name\": \"Worlds 2014 Flight One\"}}";
Root root = JsonConvert.DeserializeObject<Root>(msg) ;
string pippo = root.xwtournam.Name;
您的所有类都没有名为
锦标赛
的属性。你的JSON是这样的。这意味着什么
public class Root
{
public XWTournament tournament { get; set; }
}
在编写setter时,也不需要在setter中使用无限递归。尝试分配给它:getter和setter都只调用自己。这就是堆栈溢出异常的原因。如果您尝试设置该属性,也会得到一个 您的任何类都没有名为
锦标赛
的属性。你的JSON是这样的。这意味着什么
public class Root
{
public XWTournament tournament { get; set; }
}
在编写setter时,也不需要在setter中使用无限递归。尝试分配给它:getter和setter都只调用自己。这就是堆栈溢出异常的原因。如果您尝试设置该属性,也会得到一个 如果您使用我的代码,您可以解决您的问题。如果没有真正的功能,您不应该定义getter/setter。正如您所拥有的,
{get;set;}
也会做同样的事情,您就不需要私有字段了。@AmirHKH抱歉,您的代码在哪里?@jeff skyrunner我在下面发布了它,请使用它,如果您有任何问题,我可以解释更多如果你使用我的代码,你可以解决你的问题,如果没有真正的功能,你不应该定义getter/setter。正如你所拥有的,{get;set;}
也会做同样的事情,你就不需要私有字段了。@AmirHKH对不起,你的代码在哪里?@jeff skyrunner我在下面发布了它,请使用它,如果你有任何问题,我可以解释更多谢谢,这对我帮助很大谢谢,这对我帮助很大