问题标签 [json-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.
java - 使用杰克逊反序列化为自定义对象的 HashMap
我有以下课程:
当我执行以下代码时:
生成的 json 字符串如下所示:
我的问题是让上面的 json 字符串去序列化回
目的。
我的反序列化代码如下所示:
它使用正确的键反序列化为 HashMap,但不会为值创建主题对象。我不知道在 readValue() 方法中指定什么而不是“HashMap.class”。
任何帮助,将不胜感激。
xml-serialization - 将 ArrayList 中的对象序列化为 XML 时丢失类型元素
在使用 Jackson 序列化为 XML 时,我似乎遇到了问题。我的代码如下:
测试容器
测试孩子
采用
序列化:
XmlMapper xm = new XmlMapper(); TestContainer tc = xm.readValue(sb.toString(), TestContainer.class);
反序列化:
System.out.println(xm.writeValueAsString(tc)); tc = xm.readValue(sb.toString(), TestContainer.class);
我正在做的是从类路径上的文件夹中加载 XML 文件,并将文件的内容放入 StringBuffer 中。问题是为对象集合生成的 XML。在编写 XML 时,我想要类似的东西:
但我得到:
我不确定我在这里错过了什么。我对序列化/反序列化的 JSON 部分没有问题,只有 XML。我尝试使用 Jackson 和 JAXB 注释来关闭包装,我尝试使用以下注释:
- @JsonRootName
- @JsonProperty
- @JacksonXmlElementWrapper
- @杰克逊元素
- @XmlElementWrapper
- @XmlElement
我很确定这对我来说是愚蠢的,但任何帮助将不胜感激。
json - 高效解析大型 JSON 数组的前四个元素
我正在使用Jackson从 jsoninputStream
中解析 JSON,如下所示:
这是原始提要链接:http ://uhunt.felix-halim.net/api/p
我想解析它并只保留每个数组的前 4 个元素并跳过其他 18 个元素。
到目前为止我尝试过的代码结构:
由于这个提要非常大,我需要以更少的开销和内存有效地执行此操作。还有三种模型来处理 JSON:Streaming API、Data Binding和Tree Model。哪一个适合我的目的?
如何使用 Jackson 有效地解析这个 json?如何跳过这 18 个元素并跳转到下一个数组以获得更好的性能?
编辑:(解决方案)
Jackson
并且GSon
两者几乎都以相同的机制工作(增量模式,因为内容是增量读取和写入的),我正在切换到GSON
它具有功能skipValue()
(非常适合名称)。尽管杰克逊的nextToken()
工作方式对我skipValue()
来说GSON
似乎更灵活。感谢@Kowser bro 的推荐,我之前了解过GSON,但不知何故忽略了它。这是我的工作代码:
java - JSON:尝试反序列化具有空值的对象时出现 JsonMappingException
我尝试反序列化包含空属性并具有JsonMappingException
.
我所做的:
但是:如果要扔掉"firstName = null"
财产-一切正常!我的意思是传递下一个字符串:
问题:如何避免此异常或保证 Jackson 在序列化期间忽略空值?
抛出:
信息:
原因:
原因: java.lang.NullPointerException
android - 数组反序列化的Gson数组
我有以下 JSON 结构:
Category 的模型类(为简单起见,省略了一些字段,如 title),用于反映 JSON 结构:
我正在尝试使用 Gson 库(2.2.4)解析它,很难将内部数组反序列化为 arraylist:
Category.subCategories 始终为空。
java - 用于将类名称字符串映射到实际类定义的 Jackson 自定义反序列化
我正在使用 Jackson 自定义反序列化器来解析 JSON 文件。在这个文件中有一堆条目,键为“class”,值为类的名称(没有完整的包名)。反序列化器知道一堆预定义的(硬)路径来搜索任何类。自定义反序列化器应查找关键字“class”(在解析 JSON 时),然后根据值(类名字符串)在预定义的路径中搜索并实例化具有匹配类名的对象。
我已经实现了 JacksonDeserializers
接口并覆盖了一堆回调:findBeanDeserializer
, findBeanDeserializer
, ... 但是,当解析器看到键值对并根据它采取不同的行动findEnumDeserializer
时,这并不能让我捕捉到事件。class:ClassName
任何帮助或指示将不胜感激。
一个示例 JSON
c# - 如何在 C# 中反序列化具有固定类型标头和变体类型主体的 JSON?
我的 json 字符串包括一个固定类型的标头和非固定类型的主体,如下所示:
在运行时,我可以从配置文件中获取 Body 的类型,但是如何通过 DataContractJsonSerializer.ReadObject() 将 json 反消毒为对象指定类型?
示例代码:
在这里我可以正确获取 Header(returnObj.Header.Message) ,但 returnObj.Body 不是 MyAssembly.MyTypeName 的类型,我无法获取它的属性。
解决此类问题的任何建议?
symfony - 在 symfony2 中创建 JMS 序列化程序处理程序
我试图按照相关文档,在这里:
http://jmsyst.com/libs/serializer/master/configuration
这里
http://jmsyst.com/libs/serializer/master/handlers
和这里
http://jmsyst.com /bundles/JMSSerializerBundle/master/cookbook/custom_handlers
我在尝试获取 symfony2 中的构建器对象时遇到了困难(请参阅此对象的第二个链接)。该服务是一个已经构建的序列化程序。我应该在哪里实例化我自己的处理程序?
更新:
我正在研究一种可能的解决方案:
$builder = \JMS\Serializer\SerializerBuilder::create();
或者
$builder = new \JMS\Serializer\SerializerBuilder();
这可能会起作用,但让已经实例化的序列化程序使用我的处理程序会很好。要在控制器中获取序列化程序服务:$serializer = $this->get('jms.serializer');
c# - 如何反序列化 JSON 数据?
我是处理 JSON 数据的新手。
我正在从 Web 服务读取数据。发回的查询数据如下:
有没有办法以这样的方式反序列化这些数据,即无需我首先定义对象的样子就可以生成基础对象?在上面的示例中,对象由第一行定义:
通常,Web 服务将返回格式化为二维 JSON 数组的查询数据,其中第一行提供列名,后续行提供数据值。
c# - 如何反序列化没有名称的 JSON 数组?
我无法弄清楚如何编写一个类来反序列化 .Net 中 JSON 中的对象列表。
从 JSON 规范中,我们了解到这是有效的 JSON:
所以我构建了这个类来处理反序列化:
尽管将有效的 Json 传递给该方法,反序列化的对象仍为 null。
我尝试过的其他失败的事情包括:使 Locations 成为一个数组而不是一个列表(例如: public Location[] Location; ),以及反序列化到 location 即使 Json 包含一个位置数组。
那么,.Net 开发人员应该如何反序列化对象数组呢?我希望上述方法有效,但事实并非如此。