2015-06-18 7 views
0

Мой: JSONНаилучшая практика «подключение» объекты JSON

{ 
    "activities": [ 
     { 
       "type": "post", 
       "id": "160", 
       "name": "John Wayne", 
       "content": "this is the actual post", 
       "timestamp" : "date + time", 
     }, 
     { 
       "type": "post" 
       "id": "161", 
       "name": "Angelina Jolie", 
       "content": "this is the actual post", 
       "timestamp" : "date + time", 


     { 
       "type": "comment" 
       "id": "162", 
       "name": "Ravi Tamada", 
       "content": "content of the comment", 
       "timestamp" : "time + date", 
       "secondary_id": "160" 

     }  
    ] 
} 

У меня есть 2-х типов объектов, которые я должен рассмотреть: комментарий и пост.

Каждый комментарий связан с сообщением со своим вторичным идентификатором. Это означает, что если secondary_id имеет значение «160», этот комментарий относится к сообщению с идентификатором 160. В моем json может быть 50 сообщений, а затем 1 комментарий к 2-му сообщению, следующий еще 10 птп, а затем 6 различных комментариев. Значит, это не порядок.

Итак, теперь я пытаюсь выяснить, как их защитить в моем Java-коде, чтобы связать их. Значит, мне нужен каждый комментарий для определенного поста. Я мог бы сделать 2 массива 1 для сообщений 1 для комментариев, а затем искать массив комментариев для каждого комментария с идентификатором 160 ... 161 ..etc ... это было бы довольно грязно, я думаю.

Не существует ли какой-либо шаблон или smth, как ключ, и теперь дайте мне все вторичные идентификаторы, отображаемые как значение для этого ключа или smth?

Надеюсь, вы знаете, что я имею в виду, что-то трудно. В основном, что мне нужно, это smth, как пройти проверку json, если его сообщение, если да, безопасно. Если его комментарий ищет вторичный идентификатор и сопоставляет его с картой (или smth) правого первичного идентификатора.

+0

Вы бы описали его как: {"posts": [{"id": 5, "comments": [{"id": 6}]}] – roby

ответ

0

Прежде всего, при сериализации JSON в java есть библиотеки, которые вы можете использовать, например, Jackson.

Как только вы знакомы с Джексоном, я бы создал базовый класс для комментариев и сообщений, в котором есть все поля, которые им совместно используются.

Я бы создал custom deserializer, который после создания объекта комментария, просматривающего объект сообщения и добавляющий комментарий к сообщению.

+0

ok thanks. что в основном означает, что нет «стандартного» java-способа сделать это? И я должен использовать jackson вместо simplay (im делать это на andrid, я надеюсь, что это не имеет значения?) – zooky

+0

да см. Http://java.dzone.com/articles/be-lazy-productive-android –

Смежные вопросы