这是一个特定的问题,我在Gson的javadoc中找不到关于这个话题的任何信息。
目前,我正在尝试将Json(1){foo:“bar”,“bar:“foo”}
解析为对象实体
。通常我会将这些值映射到实体
对象,并带有foo
和bar
字段,但是我希望更独立于API。
为了(1)我会
public class Entity {
String foo;
String bar;
}
但是如果我们测试另一个endpoint,得到的Json(2)会是这样的
{"not Foo":"bar","not Bar":"foo"}
这使得我以前构造的Entity
毫无用处,我需要创建一个新的Class,其中包含相应的字段。
所以我真正的问题是:
>
是否有一个通用的(比我的例子更通用的)方法将Json推入GenericEntity
-
或者,是否有其他依赖项支持开箱即用?
您可以使用注释@序列化名称
,如每个字段的多个GSON@序列化名称中编写的。但是架构必须是相同的,您只有键名的替代项。
您没有反序列化问题,您有一个不知道如何表示可能异构的数据的问题。
没有必要说它应该是对象
,因为它肯定应该是对象
下游的某种类型,可能不止一种。首先解决这个问题:定义所有用例可能需要使用的所有类型,然后您很可能会看到如何解决反序列化问题。
当然,对于{…}之间定义的任何JSON文本
你可以选择
地图
进一步Map
使用上述规则,您可以或多或少地表示所有内容,并且可以编写
Gson
反序列化程序,根据每个节点的JSON类型(同时通过JSON树进行迭代)向您提供这些类型。然而,目前还不清楚如何利用这种异构的非类型化数据结构。
问题内容: 我需要将一些对象序列化为JSON并发送到WebService。如何使用org.json库?否则我将不得不使用另一个?这是我需要序列化的类: 我只放置了类的变量和构造函数,但也包含了getter和setter方法。所以如果有人可以帮忙 问题答案: 没有注释的简单方法是使用Gson库 就那么简单:
问题内容: 我对WCF有点陌生,将尝试清楚地描述我要做什么。 我有一个使用JSON请求的WCF Web服务。我在大多数情况下都可以很好地发送/接收JSON。例如,以下代码可以正常运行,并且符合预期。 JSON已发送: WCF: 这将按预期返回带有“ Dave”的JSON对象。问题是我无法始终保证我收到的JSON与我的DataContract中的成员完全匹配。例如,JSON: 由于大小写不匹配,将无
当使用ObjectMapper将json字符串转换为实体时,我可以将其设置为通用的: 现在让我们假设我想读集合。我可以做到: 我想写一个与上述方法等效的方法,但用于集合。因为java中不能有泛型数组,所以这样的东西是行不通的: 这里有一个几乎可行的解决方案: 问题是它没有反序列化为的列表,而是。有没有什么方法可以更进一步,如下所示?
我正在努力实现的是: 我们有一个JSON对象流进来。 我想从JSON重建一个Java对象。 我想应用转换(如更改字符串的格式和拒绝一个对象,如果满足一些条件,如'isToBe消耗'==false和可能的平坦从嵌套到线性的继承) 我希望能够将JSON对象的值存储到数据库中。 当一种新类型的JSON对象流出现时,我可以为每种类型的流运行CREATE TABLE,但我不想做任何代码更改。 换句话说,我希
问题内容: 我在这里发现了同样的问题… …但是没有正确的答案。 最好的建议之一是将嵌套对象包装到新类中,但是这种方法引入了另一个问题:乐高名称。 在我的示例中,此类的最逻辑名称是与父类相同的名称,当然这是不可能的。我的示例很简单,我只想消除父类中的“语言”属性。有人可以帮我做吗? json的示例: 问题答案: 如果JSON属性名称与c#命名约定冲突,则可以在序列化期间使用或批注替换其他名称。 例如
问题内容: 我希望这个问题最终能找到一个答案,使之永远清楚。 有模特儿: JSON输入: 以及两种反序列化泛型类型的推荐方法: 要么 Jackson永远无法处理通用类型T,它认为这是JavaType的Map,但由于类型擦除而找到了对象类型构造函数参数,并抛出错误。那是杰克逊的臭虫,还是我做错了什么?TypeReference或JavaType的显式规范还有什么用? 问题答案: 您需要在构造函数上添