当前位置: 首页 > 面试题库 >

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

西门胜涝
2023-03-14
问题内容

我有以下形式的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。



 类似资料:
  • 问题内容: 我有以下JSON片段: 全部在一个行版本中(适用于字符串文字): 在上述例子中,,,和被需要的,但是和是可选的。 这是我要反序列化的课程: 这是我用来反序列化的代码: 除此以外,一切都进行得相当顺利,并且第一次通过时都是空的。我曾尝试一切在阳光下,试图让他们填充:自定义类,,,无论是后者,和所有其他的集合,似乎适用的。[编辑:我忘记尝试了,这似乎是显而易见的候选人。没用。] 这个问题,

  • 问题内容: 我确定这个问题已经被一遍又一遍地询问了,但是由于某种原因,我仍然无法设法解决这个问题。 我想反序列化包含单个成员的JSON对象;字符串数组: 这是我要反序列化的类: 这是反序列化方法: 像这样的调用返回的初始化实例,但数组保持不变。 的结构有问题吗? 问题答案: 嗯,发布此消息后,我意识到我缺少以下属性的修饰: 现在工作正常。

  • 我有一个类,它可以很好地序列化和反序列化: 我还有一个< code>PacketResponse对象,类似于: 对象的序列化工作正常,结果如下: 然而,当我试图将这个JSON反序列化回一个< code>PacketResponse对象时,使用 我得到一个。 似乎它正在尝试反序列化 ,但由于它没有直接执行此操作,杰克逊看不到 注释,而是正在寻找 字段(因为这是构建器方法的名称)。 有人能帮我找出反序

  • 问题内容: 我在反序列化以下json数组时遇到麻烦(对不起,大小): 如果将其粘贴到json-viewer中,则会得到以下结构: 现在,包含具有坐标的数组的数组具有可变大小。所以我想在Java中,整个对象应该是一个数组,其中包含数组的集合,每个数组都包含一个。就像是 但是gson不接受这一点。我收到以下错误消息: 这似乎很奇怪,因为对我来说好像不像一个数组。但这可能使我感到困惑,或多或少地迷路了…

  • 我收到来自第3方服务提供商的JSON响应,其中包含一系列对象。当我尝试使用Jackson api反序列化JSON时。我收到以下异常 我的回答是 我的POJO课是这样的 我正在尝试使用以下代码反序列化JSON 如果我试着去做 它在BEGIN_对象本身失败。 如何使用数组读取和反序列化JSON。我应该编写自己的反序列化器吗? 编辑如果我使用JSON字符串而不是流,那么我就能够取回所有Java对象。但为

  • 问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。