2015-02-11 4 views
0
class A{} 

class B{} 

class C{ 
     private Map<A,B> myMap; 
    } 

class Test{ 

public static void main(String [] args) 
{ 
     Map classMap=new HashMap(); 
     classMap.put("myMap","?"); 
     C c = (C) JSONObject.toBean(jsonObject, C.class,classMap); 
} 

} 

Я использую «net.sf.json» библиотеки для преобразования объекта JSON в Java object.Here в классе C есть карта, так как преобразовать его в Java Object. Здесь jsonObject представляет собой json-представление класса C. Мой вопрос заключается в том, как преобразовать объект json в объект Java, если java Объект, содержащий картупреобразования объекта JSON в объект Java

Я новичок, любая помощь будет очень благодарна.

+0

Где объект JSON? – GeekRiky

+0

Здесь jsonObject - это json-представление класса C –

+0

Ну, у вас есть (незавершенный) код - он работает? – Smutje

ответ

0

Я использовал библиотеку jackson и в том случае, когда json передается в java-код, и если вы хотите проанализировать этот json в java-объект, вам нужно иметь класс, который содержит все свойство, которое присутствует в json строка.

, например:

jsonString= 
{ 
'firstname':'json', 
'lastname':'jack' 
} 

будет эквивалентен классом Java, который содержит как свойство, как

class A { 
String firstname; 
String lastname; 
} 

так, если принять строку из интерфейса в качестве объекта класса А это работает

как

public void (A objectofA){ 

} 

, и вы вызываете этот метод с переднего конца и передаете строку json, используя библиотеку json, она будет работать и верить в вашу работу.

0

Я не знаю, как это сделать в «net.sf.json» Попробуйте посмотреть, как работает сериализация в «net.sf.json». Вероятно, вы можете пойти оттуда.

Это, как это делается с помощью Джексона (один из комментаторов попытался объяснить вам подход с использованием этого)

//you need to import: 
//import org.codehaus.jackson.map.ObjectMapper; 

ObjectMapper mapper = new ObjectMapper(); 
mapper.writeValueAsString(c) //--> This gives Json String 
0

Я не думаю, что это может работать, так как JSON не может представлять произвольные объекты как ключи на картах. В JSON ключи должны быть строками. Итак, в вашем примере Map будет работать только в том случае, если A был String.

Тогда вы могли бы сказать:

classMap.put("myMap",B.class); 
Смежные вопросы