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

时间:2023-04-25
本文介绍了使用 DataContractJsonSerializer 反序列化变量类型 JSON 数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I have a JSON string in this form:

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

我正在尝试使用带有以下代码片段的 C# .NET 反序列化器 DataContractJsonSerializer 对 JSON 进行反序列化

I am trying to deserialize the JSON using the C# .NET deserializer DataContractJsonSerializer with the following code snippet

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

现在由于 JSON 数组是变量类型的数组,我不知道是什么类型的对象X 应该是

Now since the JSON array is an array of variable types I do not know what type of object X should be

如果我的字符串是

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

我可以用这个:

X = List<List<String>> 

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

and that would work for me. I was wondering if there is any way to deserialize variable type JSON array?

推荐答案

你可以使用 Json.NET 来做到这一点.

You could use Json.NET to do this.

JArray a = JArray.Parse(jsonStr);

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

The JArray would contain either strings or nested JArray's depending on the JSON.

这篇关于使用 DataContractJsonSerializer 反序列化变量类型 JSON 数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:从结构化数据构建 JSON 层次结构 下一篇:动态 JContainer (JSON.NET) &amp;在运行时迭代属性

相关文章