c# - 使用 DataContractJsonSerializer 反序列化变量类型 JSON 数组

标签 c# json json.net

我有一个这种形式的 JSON 字符串:

string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"

我正在尝试使用 C# .NET 反序列化器 DataContractJsonSerializer 和以下代码片段反序列化 JSON

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);

现在因为JSON数组是一个可变类型的数组我不知道是什么类型的对象 X应该是

如果我的字符串是

jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"

我可以用这个:

X = List<List<String>> 

这对我有用。我想知道是否有任何方法可以反序列化可变类型的 JSON 数组?

最佳答案

你可以使用 Json.NET做这个。

JArray a = JArray.Parse(jsonStr);

JArray 将包含字符串或嵌套的 JArray,具体取决于 JSON。

关于c# - 使用 DataContractJsonSerializer 反序列化变量类型 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1215479/

相关文章:

c# - 如何重构此 C# 代码以使其更易于阅读?

json - Azure - 应用程序注册 - 编辑 OAuth2Permissions 的现有条目不起作用

python - 获取文件夹和文件的 JSON 树(但仅限包含给定字符串的文件)

ios - JSON 解析错误 - 类型 'RecentTvListData' 没有下标成员

c# - 使用 Newtonsoft 自定义 JSON 字符串输出

c# - 字段初始值设定项访问 'this' 已重新加载

c# - 队列保持引用或对象值?

c# - Json.Net PopulateObject 附加列表而不是设置值

c# - 如何组织自定义 SQl 查询集合

c# - 限制集合中的对象基于用户序列化