C# Json 反序列化

本文关键字:反序列化 Json | 更新日期: 2023-09-27 17:57:00

我被要求使用json数据,以便在Windows Phone中创建问答游戏。我知道我必须使用 json.net 来实现我过去使用过的方法,但我过去使用的方法在这里没有用。

我的问题是这个。我有这个 json 字符串

 [{"corr":"1","q":"text.","type":"0"},
    {"corr":"0","q":"text.","type":"0"},
    {"corr":"1","q":"text.","type":"0"},
    {"corr":"0","q":"text.","type":"0"},
    {"corr":"0","q":"text.","type":"0"},
    {"corr":"1","q":"text.","type":"0"},
    {"corr":"4","q":"text","a":["text","text","text","text"],"type":"1"},
    {"corr":"2","q":"text","a":["text","text","text","text"],"type":"1"},
    {"corr":"1","q":"text","a":["text","text","text","text"],"type":"1"},
    {"corr":"2","q":"text","a":["22,2%","45%","54%","67%"],"type":"1"}]

正如您可以想象的那样,我想用上面的属性填充一些列表。我创建了以下类来表示 json 对象

public class QuizObj
{
    public string corr { get; set; }
    public string q { get; set; }
    public string type { get; set; }
    public List<string> a { get; set; }
}

但我真的不知道如何使用它,也找不到真正相关的东西。

C# Json 反序列化

这样的事情应该可以解决问题:

var quizObjs = JsonConvert.DeserializeObject<List<QuizObj>>(serializedStringValue);
string corr = quizObjs.First().corr;
// or
foreach(var quizObj in quizObjs)
{
    string corr = quizObj.corr;
    // etc
}

你将需要添加对NewtonSoft.Json的引用,你可以通过NuGet获取(如果尚未获取)。