2016-02-24 3 views
0

Это мои классы.Создание комплекса JSON из объекта java

Class TypeC { 

    int var1; 
    HashMap<String,String>var2; 
    ArrayList<TypeC> var3; 

} 

Class TypeB { 

TypeC var1; 

} 

Class TypeA { 

    Long var1; 
    TypeB var2; 
} 

Я хочу создать объект TypeC, а затем преобразовать его в соответствующий объект JSON (комплекс JSON). Я пробовал следующее, но он не работает.

TypeC obj = new TypeC(); 
    JSONObject TypeCJSON=new JSONObject(obj); 
+0

Try 'com.fasterxml.jackson.databind.ObjectMapper' – radoh

+0

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

+0

Библиотека JSON Jackson обычно используется для преобразования между POJO (обычным старым Java-объектом) и JSON (и обратно). Посмотрите их в Интернете, обратите внимание, что вам нужно знать, как настроить среду java-dev для этого. – stjepano

ответ

1

Полный пример связывания данных с помощью 'com.fasterxml.jackson.databind.ObjectMapper':

package spring.exos; 

import com.fasterxml.jackson.core.JsonProcessingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 

public class Main { 

public static void main(String[] args){ 

    final Computer computer = new Computer(); 
    computer.setBrand("Toshiba"); 
    computer.setModel("TSB I7-SSD"); 
    computer.setSpecs(new Specs(new Integer(256), new Integer(8), new Double(2.4))); 

    final ObjectMapper mapper = new ObjectMapper(); 
    try { 
     System.out.println(mapper.writeValueAsString(computer)); 
    } catch (JsonProcessingException e) { 
     e.printStackTrace(); 
    } 

} 

public static class Computer{ 
    private String brand; 
    private String model; 
    private Specs specs; 

    public String getBrand() { 
     return brand; 
    } 
    public void setBrand(String brand) { 
     this.brand = brand; 
    } 
    public String getModel() { 
     return model; 
    } 
    public void setModel(String model) { 
     this.model = model; 
    } 
    public Specs getSpecs() { 
     return specs; 
    } 
    public void setSpecs(Specs specs) { 
     this.specs = specs; 
    } 
} 
public static class Specs { 
    private Integer hdd; 
    private Integer memory; 
    private Double cpu; 

    public Specs(Integer hdd, Integer memory, Double cpu) { 
     super(); 
     this.hdd = hdd; 
     this.memory = memory; 
     this.cpu = cpu; 
    } 
    public Integer getHdd() { 
     return hdd; 
    } 
    public void setHdd(Integer hdd) { 
     this.hdd = hdd; 
    } 
    public Integer getMemory() { 
     return this.memory; 
    } 
    public void setMemory(Integer memory) { 
     this.memory = memory; 
    } 
    public Double getCpu() { 
     return cpu; 
    } 
    public void setCpu(Double cpu) { 
     this.cpu = cpu; 
    } 
} 
} 

Выходной сигнал является:

{ "бренд": "Toshiba », "модель": "ТСБ-I7 SSD", "функции": { "HDD": 256, "память": 8, "процессор": 2.4}}

Вы должны иметь зависимость к:

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.7.1-1</version> 
</dependency> 
0

, если вы готовы использовать другую библиотеку, используя Gson https://github.com/google/gson вам просто нужно сделать, это:

String json = new Gson().toJson(object);