使用GSON生成链接而不是整个对象树的序列化

时间:2011-10-25 09:00:47

标签: java json hyperlink gson

我想用gson序列化对象树。它工作正常,但我不想转移整个树。特别是我想生成子对象的链接。

例如:

class BookStrore {
  public String name;
  public List<Book> books;
}

class Book {
  public int id;
  public String name;
}

序列化BookStore实例会导致类似:

{ name : 'bookStoreName', 'books' : [ { id: '3', name: 'blubb' }, ... ] } 

但希望有以下链接:

{ name: 'bookStoreName', 'books': [ book: 'http://example.com/book/3', ... ] }

有谁知道如何使用GSON实现这一目标? 我不是坚持GSON。如果有人有其他解决方案,欢迎。

2 个答案:

答案 0 :(得分:0)

我认为你可以找到一个带注释的答案

{{3p>

答案 1 :(得分:0)

感谢您的链接。它让我从另一个角度再次思考这个问题。我终于认识到问题在于我的方法,因为如果声称“BookStore”有一个书籍列表,那么必须有一个书籍列表而不是一个参考列表。当然,在Java中,书籍列表也是参考列表。所以我可以开始生成代理。为此,我必须修改序列化器/解串器。但是这会违反默认情况,在我的情况下是java编程模型。另一种方法是,我更喜欢因为它更清晰的系统独立,以创建特殊的数据传输对象。在这种情况下,BookLinks让BookStore类包含BookLinks列表。我认为这是正确的方式,因为它揭示了它是什么,一个链接而不是一个对象。