Deserializing simple string
我确定我遗漏了一些非常明显的东西,而且我已经阅读了不同的主题(比如这个,这个和这个,只是列举最后一个),但我仍然找不到答案......
这是我的课程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } } } |
我在这里尝试使用它们:
1 2 3 4 | msg ="{"tournament": {"Name": "Worlds 2014 Flight One"}}"; Root root = JsonConvert.DeserializeObject<Root>(msg) ; string pippo = root.xwtournam.Name; |
但在这种情况下,我收到堆栈溢出错误...
我错过了什么?如何读取字符串中的变量?
编辑:感谢有用的答案,我以这种方式更正了代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } } } |
您的所有类都没有名为
1 2 3 4 | public class Root { public XWTournament tournament { get; set; } } |
你也不需要在你编写的 setter 中进行无限递归。尝试分配给它:getter 和 setter 都只是调用自己。这就是堆栈溢出异常的原因。如果您也尝试设置该属性,您也会得到一个。