反序列化简单字符串

0 c# json.net asp.net-core

我确定我错过了一些非常明显的东西,而且我已经阅读了不同的主题(就像这一个,这也是这个,仅仅是为了命名最后一个)但我仍然找不到答案......

这是我的课程:

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; }
  }
}
Run Code Online (Sandbox Code Playgroud)

在这里我尝试使用它们:

msg = "{\"tournament\": {\"Name\": \"Worlds 2014 Flight One\"}}";

Root root = JsonConvert.DeserializeObject<Root>(msg) ;
string pippo = root.xwtournam.Name;
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我收到堆栈溢出错误...

我错过了什么?如何读取字符串中的变量?

编辑:由于有用的答案,我已经用这种方式纠正了代码

using System;
using Newtonsoft.Json;

namespace WebAPIClient
{
    public class XWTournament
    {
        //I've deleted the private variable
        public string Name { get; set; }

    }

    public class Root 
    {
        [JsonProperty("tournament")]
        public XWTournament xwtournam { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

15e*_*153 5

您的所有类都没有名为的属性tournament.你的JSON呢.这表明了什么?

public class Root 
{
    public XWTournament tournament { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在编写时,您也不需要在setter中进行无限递归.尝试分配它:getter和setter都只是自己调用.这是堆栈溢出异常的原因.如果你试图设置那个属性,你会得到一个.