用{get;将.json反序列化为C#。组; }(Newtonsoft)

时间:2018-08-01 06:24:05

标签: c# json json.net

我正在尝试使用Newtonsoft.Json填充json文件中的2个字符串。 从我一直在阅读的内容来看,这似乎应该起作用。

在我的程序课中:

public string Lavalinkpw { get; set; }
public string Token { get; set; }

在我的主要任务中:

var setup = JsonConvert.DeserializeObject<Program>(File.ReadAllText(@"config.json"));

现在,我有控制台将设置中继回给我(这就是为什么它是可变的),并且它反序列化也很好,那么为什么不设置Lavalinkpw和Token? 这是.json:

{
  "Lavalinkpw": "mypw",
  "Token" : "mycooltoken"
}

2 个答案:

答案 0 :(得分:1)

类名Program可能与默认创建的类名冲突,该类名是您的入口点方法Main的容器,因此您的代码试图反序列化为完全错误的课。在这种情况下,应该有一个编译器警告。

答案 1 :(得分:0)

  

类名Program可能与以下名称冲突   默认情况下创建的类,作为您的入口点的容器   Main方法,以便您的代码尝试反序列化为完全   错误的课。在这种情况下,应该有一个编译器警告。

     

@Tom W

进行自定义class

//Custom class
public class MyClass
{
    public string Lavalinkpw { get; set; }
    public string Token { get; set; }
}

现在叫这个。

//To deserialize json into object
var setup = JsonConvert.DeserializeObject<MyClass>(File.ReadAllText(@"config.json"));

希望它对您有用。欲了解更多信息 JsonConvert Reference