问题标签 [deserialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
44260 浏览

java - 杰克逊 JSON + Java 泛型

我正在尝试使用Jackson json libraryList<Bill将以下 JSON 反序列化/映射到> java 对象。(此 json 由杰克逊生成,为简洁起见,我省略了该部分)

这是我的转换方法:

账单实体如下:

我得到这个错误:

这是我的简化 spring3 控制器,它返回 i/p json(杰克逊映射配置为默认视图):

我想我错过了一些明显的东西..但不确定它是什么..有什么想法吗?

0 投票
1 回答
8591 浏览

arrays - 使用 Gson 或嵌套内部类反序列化内部类中的任意对象 json 数组

当我尝试使用 Gson 反序列化一个 Json 字符串时遇到了麻烦。字符串是这样的(注意:我只是简化了它,但留下了我遇到问题的部分,因此,可能存在 Json 语法错误,但我已经使用在线验证器检查了我正在使用的字符串没问题):

现在,我遇到的问题是当我尝试反序列化 json 数组(“定义”和“行”)时。其余字段在反序列化中获得适当的值。我正在使用的类定义如下(为简单起见,没有 getter/setter):

RateContainer(根据 Gson 规范,内部静态类到类 Container):

要解析 Json 字符串,我使用:

我得到以下异常:

看起来类定义中必须有一些不能正常工作的东西。我检查了 Gson API,我知道,为了反序列化列表,通常要做的是:

所以我想也许我可以先得到这些数组,使用类似的东西:

然后获取“定义”和“行”,但我更愿意将所有内容保留在 Container 对象中。有没有办法以这种方式反序列化这些列表?类定义有问题吗?

谢谢大家!

0 投票
1 回答
2013 浏览

c# - 如何在 C# .NET(win7 手机)中读入带有“DataContractJsonSerializer”的“嵌套”Json 文件?

我有一个问题,如果我的 json 文件看起来像这样

{“数字”:“45387”,“单词”:“空间桶”}

我可以很好地阅读它,但是如果它看起来像这样:

{ "Main" :{ "Numbers": "45387", "Words": "space buckets"},
"Something" :{"Numbers": "12345", "Words": "Kransky"} }

我没有得到任何信息。我不知道如何在 Main 和 Something 之间切换!使用此代码加载带有此“嵌套”信息的 JSON,

// 用来保存我的信息的类

导致类返回空。
我尝试将组名添加到 DataContract,例如。[DataContract, Name="Main"] 但这仍然会导致类值为空。
我还尝试将“main”添加到序列化程序重载程序中,例如。var ser = new DataContractJsonSerializer(typeof(myInfo), "Main");
这会导致错误:从命名空间“”中期待元素“主”。遇到名称为“根”、命名空间“”的“元素”。
我宁愿只使用提供的 json 阅读器。我研究了 json.NET,但发现文档在编写 json 方面很繁重,而关于阅读的信息很少。当然,我在这里遗漏了一些简单的东西!

0 投票
2 回答
223 浏览

c# - c# 要反序列化的 XML 不正确

我有这个 XML,我需要反序列化,但类型不正确。

我该如何解决?我喜欢允许 int 和 string。

提前谢谢,

0 投票
1 回答
826 浏览

c# - 反序列化 json 字符串

如何设计一个在反序列化后保存值的类?我正在使用 JavaScriptSerializer

0 投票
3 回答
27308 浏览

c# - 使用 C# 反序列化 JSON

在尝试在 C# 中反序列化 JSON 时,在获取信息时发现了一些困难。

我有以 JSON 格式返回的 Google 自定义搜索结果。我只想检查我的步骤并建立尝试反序列化它的顺序。这是正确的吗?

  1. 我需要创建类以匹配 JSON 格式。有点像创建模式文件。
  2. 使用JavaScriptSerializer()类和 deserialize方法提取相关位。

我认为我会遇到的问题之一是我不需要返回所有数据,而只需要 html 链接。我怎样才能做到这一点?

更新

我已使用以下 JSON 片段和 C# 代码更新了我的问题。我想将字符串“链接”输出到控制台,但它似乎不起作用。我认为我错误地定义了我的课程?

来自 Google 自定义搜索的 JSON

C# 代码段

谢谢

0 投票
2 回答
2766 浏览

c# - 使用 XmlSerializer 反序列化复杂类型元素为 null

我有以下架构:

和以下课程:

使用以下代码反序列化对象:

没有发生任何错误,但对象的属性为空,有人知道发生了什么吗?

0 投票
1 回答
480 浏览

c# - DataContractJsonSerializer 为不同类型的成员抛出 InvalidCastException

有一段字符串我想用DataContractJsonSerializer. JSON 字符串中有一个成员有时可能是对象,有时可能是字符串。像这样:

或者

我知道第二种情况下对象的结构(我们称之为类Inner),但是如何DataContractJsonSerializer转换两种可能类型的对象呢?

我尝试制作一个显式和隐式转换运算符来转换 from stringto Inner,但它没有受到打击。一个InvalidCastException不断被抛出。

0 投票
1 回答
8791 浏览

json - 如何使用嵌套字典反序列化 json?

对于某些端点 SimpleGeo.com 返回如下内容:

(参见http://simplegeo.com/docs/api-endpoints/simplegeo-features#get-detailed-information)。

现在我在反序列化“属性”部分时遇到了一个小问题。如果我使用例如一种 Dictionary 类型,它会将其转换为一个不错的字典,但 'classifiers' 值只是一个 {} 字符串。

有没有办法告诉 json.net 将子数组反序列化为另一个 Dictionary 等?基本上,该返回中有一定数量的普通键/值,但我知道可能不仅仅是“分类器”子数组(参见“标签”),而且值的深度可能更进一步。 ..

所以基本上我想知道的是,我如何正确反序列化属性部分?有什么建议么?我不介意编写自己的 JsonConverter,但也许已经有一种方法可以不用它。

0 投票
5 回答
1019 浏览

java - 序列化框架(无参数构造函数)

我正在寻找有关基于以下(Java)序列化对象图的最佳方法的一些信息:

  • 如果它们的状态相等,则同一类的两个对象必须二进制相等(逐位)与 true 相比。(必须不依赖于 JVM 字段排序)。
  • 集合仅使用数组建模(没有集合)。
  • 所有实例都是不可变的
  • 序列化格式应该是 byte[] 格式而不是基于文本的。
  • 我控制着图中的所有类。

我不想在类中放置一个空的构造函数只是为了支持序列化。我已经研究过基于我自己的遍历和 Objenisis 实现一个解决方案,但我的问题似乎并不那么独特。首先更好地检查任何现有/完整的解决方案。

更新详情:

首先,感谢您的帮助!

  • 对象必须根据对象状态序列化为完全相同的位顺序。这很重要,因为二进制内容将被数字签名。序列化格式的重建将基于对象的状态,而不是存储原始位。
  • 不同技术之间的互操作性很重要。我确实看到该软件在 ex 上运行。.Net 未来。序列化格式中没有 Java 风格。

关于不可变性的注释:数组的值从参数复制到构造函数的内部字段。不太重要。

最好的祝福,

尼古拉斯·林德伯格