我正在尝试在C#中反序列化我的JSON文件并在下面收到错误: "类型' Newtonsoft.Json.JsonSerializationException'发生在Newtonsoft.Json.dll但未在用户代码"
中处理我的JSON是:
[{"Yes":"52","No":"41"}]
我的c#代码是
public class survey
{
public string Yes { get; set; }
public string No { get; set; }
}
protected void Button1_Click(object sender, EventArgs e)
{
using (StreamReader r = new StreamReader("sample.json"))
{
string json = r.ReadToEnd();
var items = JsonConvert.DeserializeObject<survey>(json);
var a = items.Yes;
TextBox1.Text = a;
}
}
任何人都可以帮助我。
答案 0 :(得分:4)
应该是
JsonConvert.DeserializeObject<List<Survey>>(jsonstr);
而不是
JsonConvert.DeserializeObject<survey>(json);
因为您将JSON作为[是,否]的数组
然后你会得到像
这样的数据var a = items[0].Yes;
修改强>
完整的代码可能如下所示
string jsonstr = File.ReadAllText("some.txt");
var items = JsonConvert.DeserializeObject<List<Survey>>(jsonstr);
var a = items[0].Yes;
该课程看起来像这样
public class Survey
{
[JsonProperty("Yes")]
public string Yes { get; set; }
[JsonProperty("No")]
public string No { get; set; }
}