Джексон: отображение ответа JSON на несколько бинов - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть JSON, который имеет несколько типов.Пример:

{ 
  "Type1":{"name:":"abc","age":23},
  "Type2":{"count":0, "id":"abcd"}
}

Это я хочу сопоставить с классами "Type1" и "Type2".

Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Я предполагаю, что самый простой способ - создать боб Wrapper

public class WrapperBean{
    private Bean1 bean1;
    private Bean2 bean2;
    // getters, setters
}
1 голос
/ 27 февраля 2012

Попробуйте использовать конструктор при перегрузке

Class MainType () {
  MainType(String name, int age) {
    Type1  type1 = new Type1();
  }

  MainType(int count, String id) {
    Type2  type2 = new Type2();
  }
}

.... Здесь у вас класс Type1 и Type2.

0 голосов
/ 27 февраля 2012

Вы говорите о случае, когда данные JSON передаются от клиента к серверу?

@RequestMapping("/performTest.json")
    public @ResponseBody String performTest(@RequestBody List<Object> jsonData){
List<Bean> beanList=new ArrayList<Bean>();        
for(Object obj:jsonData){
                LinkedHashMap<String,Object> map=(LinkedHashMap<String,Object>)obj;

Bean bean=new Bean();
bean.setName(map.get("name"));
bean.setAge(map.get("age"));
beanList.add(bean);
}

Обратите внимание, что это не лучшее решение, но еще один способ решения вашей проблемы ... сообщите нам, когда вы получите окончательный подход к решению этой проблемы ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...