c# - 如何在 C# 中使用 Newtonsoft 反序列化

标签 c# json json.net

我正在尝试在 C# 中反序列化我的 JSON 文件并收到以下错误: “在 Newtonsoft.Json.dll 中出现类型为‘Newtonsoft.Json.JsonSerializationException’的异常,但未在用户代码中处理”

我的 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;
        }
    }

谁能帮帮我。

最佳答案

应该是

JsonConvert.DeserializeObject<List<Survey>>(jsonstr);

代替

JsonConvert.DeserializeObject<survey>(json);

因为您将 JSON 作为 [Yes,No] 的数组获取

然后你会得到这样的数据

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; }
}

Screenshot for the output

关于c# - 如何在 C# 中使用 Newtonsoft 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41733625/

相关文章:

由 c# Json.NET ToJson() FromJson()

java - JSON gson 解析为\n

c# - Json.NET - 将 JObject 添加到 JArray

c# - Json.NET SerializeObject 转义值以防止 XSS

c# - 实体可以附加到以前未附加的 ISession 吗?

javascript - 如果对象不存在,则无法在对象中创建新字段

json - Set-Cookie header 在响应中,但浏览器未在下一个请求中设置 Cookie

c# - C# 是否像 VB.NET 一样支持项目范围的默认命名空间导入?

c# - 此 Moq 测试主要针对 linq 语法如何工作?

c# - 如何等待协程回调执行?