schema.org 在 Java 中反序列化
schema.org deserialize in Java
我正在尝试反序列化 schema.org 的对象,但每次我都会遇到复杂的问题。我不确定这是我的错还是从来没有人这样做过。我尝试了几个 schema.org 的项目,他们迟早都会遇到同样的问题(实际上是出于明显的原因)。问题出在 属性 和 "Author" 上。例如,烹饪食谱有作者。 Schema.org/Recipe 表示作者可以是个人或组织。两者都是schema.org的对象。
到现在为止都很简单。我获得了食谱的架构并将其传递给 jsonschema2pojo.org 并获得了我的 classes。
然后用 Gson
Gson gson = new Gson();
Recipe recipe = gson.fromJson(myString,Recipe.class);
myString 是我用来生成食谱 classes 的 json-ld。一旦我尝试从网上下载更多食谱,我立即遇到作者不是 schema.org 项目,而是一个简单字符串的模式。从这一点开始,我被封锁了。解析器被卡住了,就像 google 的 schemaorg-java 解析器一样。
我确实读到有人修改 class 以将作者作为对象,然后修改 getter 和设置器。应该为整个 Recipe class 制作反序列化器,但它必须仅对作者(和其他类似参数。
表现不同
没有更简单的方法在 java 中反序列化 schema.org 吗?我谷歌搜索错了吗?
如果您使用的是 GSON,则需要创建自定义解串器。最好的办法是读取 author 值的类型,如果它是一个字符串,则创建一个自定义 Author POJO,并将名称设置为字符串。
您选择了一种难以实现此解析器的语言。强类型语言将很难从松散类型语言反序列化数据。
最重要的是 schema.org 没有明确定义。另外,人们会搞砸他们的 schema.org 标记。由您决定如何处理它。您是否拒绝所有不完全符合数据的数据,或者您是否试图强制数据?
我很好奇你在做什么。它是网络服务吗?
我正在尝试反序列化 schema.org 的对象,但每次我都会遇到复杂的问题。我不确定这是我的错还是从来没有人这样做过。我尝试了几个 schema.org 的项目,他们迟早都会遇到同样的问题(实际上是出于明显的原因)。问题出在 属性 和 "Author" 上。例如,烹饪食谱有作者。 Schema.org/Recipe 表示作者可以是个人或组织。两者都是schema.org的对象。
到现在为止都很简单。我获得了食谱的架构并将其传递给 jsonschema2pojo.org 并获得了我的 classes。 然后用 Gson
Gson gson = new Gson();
Recipe recipe = gson.fromJson(myString,Recipe.class);
myString 是我用来生成食谱 classes 的 json-ld。一旦我尝试从网上下载更多食谱,我立即遇到作者不是 schema.org 项目,而是一个简单字符串的模式。从这一点开始,我被封锁了。解析器被卡住了,就像 google 的 schemaorg-java 解析器一样。
我确实读到有人修改 class 以将作者作为对象,然后修改 getter 和设置器。应该为整个 Recipe class 制作反序列化器,但它必须仅对作者(和其他类似参数。
表现不同没有更简单的方法在 java 中反序列化 schema.org 吗?我谷歌搜索错了吗?
如果您使用的是 GSON,则需要创建自定义解串器。最好的办法是读取 author 值的类型,如果它是一个字符串,则创建一个自定义 Author POJO,并将名称设置为字符串。
您选择了一种难以实现此解析器的语言。强类型语言将很难从松散类型语言反序列化数据。
最重要的是 schema.org 没有明确定义。另外,人们会搞砸他们的 schema.org 标记。由您决定如何处理它。您是否拒绝所有不完全符合数据的数据,或者您是否试图强制数据?
我很好奇你在做什么。它是网络服务吗?