2014-03-26 24 views
0

我从服务器获取一些JSON。它看起来像这样:由2个独立字符串组成的JSON

User.json: 
[ 
{ 
    "user":"Rene8888", 
    "userid":1 
}, 
{ 
    "user":"Paul1032", 
    "userid":2 
} 
] 

Post.json: 
{ 
    "content":"I am a test!", 
    "postetby":1, 
    "editedby": [ 
     {"id":1}, 
     {"id":2} 
    ] 
} 

从服务器我得到2个独立的JSON字符串:
用户在User.json
单篇文章在Post.json

我要反序列化的列表用户列表第一。问题出现在反序列化Post.json。我想让“postby”值引用用户的对象以及编辑帖子的每个用户。

反序列化的对象应该是这样的:

public class User { 
    public int id; 
    public String username; 
} 

public class Post { 
    public String content; 
    public User postedBy; 
    public List<User> editedBy; 
} 
+0

这是简单的只是分析了所有的jsons从中创建用户和Post.json指定该帖子的用户 – Deepak

+0

它应该是简单的,但我想与杰克逊这样做,因为性能改进。 atm我手动解析它,但这只是减慢速度的方法(在我真实的情况下,超过2秒只是整个复杂设置的一部分) – Rene8888

+0

我用jackson stream api做了它 - 所以现在一切都很好:) – Rene8888

回答

0

这里是JSON与杰克逊JsonParser解析一个很好的例子:http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/

我只是解析用户为对象,并把它们与ID为把键转换成散列表。之后我解析这些帖子。如果我得到一个ID,我通过id获得用户对象作为hashmap中的键。这并不像使用ObjectMapper那么简单,但它起作用并且非常快速。