有没有Java支持JSPON序列化和引用?

有没有Java支持JSPON序列化和引用?,java,json,jsonserializer,Java,Json,Jsonserializer,我正在寻找一个JavaJSpon序列化程序,它可以根据 目前是否有可用的解决方案?或者有没有办法修改现有的序列化程序来处理带有$ref符号的对象引用?我将使用众多对象到JSon序列化库中的一个。许多库都是可扩展的,但我怀疑添加引用可能会变得复杂,除非您对何时使用这些库做出一些务实的选择。我将使用众多对象到JSon序列化库中的一个。许多库都是可扩展的,但我怀疑添加引用可能会变得复杂,除非您就何时使用这些库做出一些务实的选择。注意:我是专家组的负责人和成员 如果您对对象JSON绑定方法感兴趣,下面介

我正在寻找一个JavaJSpon序列化程序,它可以根据


目前是否有可用的解决方案?或者有没有办法修改现有的序列化程序来处理带有$ref符号的对象引用?

我将使用众多对象到JSon序列化库中的一个。许多库都是可扩展的,但我怀疑添加引用可能会变得复杂,除非您对何时使用这些库做出一些务实的选择。

我将使用众多对象到JSon序列化库中的一个。许多库都是可扩展的,但我怀疑添加引用可能会变得复杂,除非您就何时使用这些库做出一些务实的选择。

注意:我是专家组的负责人和成员

如果您对对象JSON绑定方法感兴趣,下面介绍如何使用MOXy进行绑定。以下示例基于JSPON核心规范中的示例:

母公司

父类是与JSON消息的根相对应的域对象。它有两个类型为Child的字段

孩子

子类可以由其键引用。我们将使用XmlAdapter处理这个用例。我们通过@XmlJavaTypeAdapter注释链接到XmlAdapter

package forum9862100;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlJavaTypeAdapter(ChildAdapter.class)
@XmlAccessorType(XmlAccessType.FIELD)
public class Child {

    protected String id;
    protected String foo;
    protected Integer bar;

}
儿童适配器

下面是XmlAdapter的实现。这个XmlAdapter是有状态的,这意味着我们需要在封送器和解封送器上设置一个实例

输出

下面是运行演示代码的输出。注意Child的两个实例如何通过身份测试

true
{
   "field1" : {
      "id" : "2",
      "foo" : "val",
      "bar" : 4
   },
   "field2" : {
      "$ref" : "2"
   }}
更多信息

注:我是专家组的负责人和成员

如果您对对象JSON绑定方法感兴趣,下面介绍如何使用MOXy进行绑定。以下示例基于JSPON核心规范中的示例:

母公司

父类是与JSON消息的根相对应的域对象。它有两个类型为Child的字段

孩子

子类可以由其键引用。我们将使用XmlAdapter处理这个用例。我们通过@XmlJavaTypeAdapter注释链接到XmlAdapter

package forum9862100;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlJavaTypeAdapter(ChildAdapter.class)
@XmlAccessorType(XmlAccessType.FIELD)
public class Child {

    protected String id;
    protected String foo;
    protected Integer bar;

}
儿童适配器

下面是XmlAdapter的实现。这个XmlAdapter是有状态的,这意味着我们需要在封送器和解封送器上设置一个实例

输出

下面是运行演示代码的输出。注意Child的两个实例如何通过身份测试

true
{
   "field1" : {
      "id" : "2",
      "foo" : "val",
      "bar" : 4
   },
   "field2" : {
      "$ref" : "2"
   }}
更多信息

true
{
   "field1" : {
      "id" : "2",
      "foo" : "val",
      "bar" : 4
   },
   "field2" : {
      "$ref" : "2"
   }}