我需要将简单的json反序列化为字典或类似的东西
杰森:
{"answer":"ok","hash":"hash123","name":"name123","kills":0,"online":0,"currentTime":"2018-01-06 21:18:30","endDate":"2018-01-06 21:18:30","configUrl":"configUrl123","extend":[]}
我在这个 json 对象的"扩展"数组有问题。它给了我错误,因为我的字典对数组是错误的。如果我删除它,一切都可以正常工作,但我需要保存它。
var json = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
Console.WriteLine(json["answer"]);
当然,我可以用类解决这个问题,但我不能使用它。
您正在尝试将数组反序列化为字符串,因此这不起作用。请尝试改用DeserializeObject<Dictionary<string, object>>
。
我建议你用已知对象反序列化它;
public class JsonObject
{
public string answer { get; set; }
public string hash { get; set; }
public string name { get; set; }
public int kills { get; set; }
public int online { get; set; }
public string currentTime { get; set; }
public string endDate { get; set; }
public string configUrl { get; set; }
public List<object> extend { get; set; }
}
var json = JsonConvert.DeserializeObject<JsonObject>(jsonStr);
Console.WriteLine(json.answer);
如果你想继续使用字典,你应该像Dictionary<string, object>
一样反序列化,因为extend
键不包含string
;
var jsonDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonStr);
Console.WriteLine(jsonDictionary["answer"]);