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我在下面发布了它,请使用它,如果你有任何问题,我可以解释更多谢谢,这对我帮助很大谢谢,这对我帮助很大