java - 反序列化由@JsonIdentityInfo 序列化的对象

标签 java android spring jackson

我正在像这样注释我的 User 类以删除输出的循环格式:

@Entity
@Table(name = "USER")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id", scope = User.class)
public class User extends AbstractValueObject {
    private Integer id;
    private String name;
 .....
}

public class Load extends AbstractValueObject {
    private Integer id;
    private User postedBy;
}

所以每当我获取负载列表时,它都会给我输出如下 JSON:

[
  {
   "id" : 1,
   "postedBy" : {
                  "id":1,
                  "name":"SOF"    
                }
  },
  {
   "id" : 2,
   "postedBy" : 1
  }
]

但是客户端需要它的原始格式——比如说每个加载对象都应该包含完整的postedBy对象。客户端在 Android - Java 中。

在 Android 端有什么方法可以在 Android 上反序列化原始格式的对象吗?

预期输出:

   [
      {
       "id" : 1,
       "postedBy" : {
                      "id":1,
                      "name":"SOF"    
                    }
      },
      {
       "id" : 2,
       "postedBy" : {
                      "id":1,
                      "name":"SOF"    
                    }
      }
    ]

我尝试使用 JSOG,但在某些情况下它失败了。

任何帮助将不胜感激。 :)

最佳答案

您可以使用 Jsog Converter,它提供了对对象进行编码和解码的库。 https://github.com/jsog/jsog

关于java - 反序列化由@JsonIdentityInfo 序列化的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52946589/

相关文章:

android - 如何使用 Picasso 将歌曲专辑封面加载到 ImageView?

java - 无法使用 hibernate PostgreSQL 存储 java.time.ZonedDateTime

java - 轻度使用后,Tomcat 随机关闭并出现 AbstractProtocol 暂停

Java税类

java - SQLiteBlobTooBigException - 华为设备、Android 9 和 10

android - 模拟 admob 上的点击 (Android)

Android Studio 未将应用程序安装到设备中

java - 如何从 Spring Controller 在浏览器中返回 CSV 数据

java - 如何指定Java使用哪种方法?

java - 如何使用 java 从 Microsoft 文档创建预览图像