2015-05-11 12 views
0

Когда я выполняю это, я получаю результат. Но я хочу преобразовать результат в другой formate.Преобразование списка моделей в json-формат

public List<Data> getData() { 
// TODO Auto-generated method stub 
System.out.println("In getData dao************"); 
session=sessionFactory.openSession(); 
tx=session.beginTransaction(); 
List<Data> blist=session.createCriteria(>.class).list(); 
System.out.println("datalist dao************"+blist); 
tx.commit(); 
session.close(); 
return blist; 
} 

Data.java

@Entity 
@Table(name="tbl_genere") 
public class Data implements Serializable{ 
private static final long serialVersionUID = 1L; 

@Id 
@Column(name="dataid") 
private String DataId; 

@Column(name="dataname") 
private String DataName; 

public String getDataId() { 
return DataId; 
} 

public void setDataId(String dataId) { 
DataId = dataId; 
} 

public String getDataName() { 
    return DataName; 
} 

public void setDataName(String dataName) { 
DataName = dataName; 
} 

я получаю результат как [[email protected], [email protected]]. Но мне нужно сохранить результат в файле как json formate. то есть

{ 
"datalist": 
{ 

"dataname1","dataname2","dataname3" 
} 
} 

Как я могу преобразовать его в этот формирующий элемент.

+0

см [это] (http://www.mkyong.com/java/how -to-convert-java-object-to-from-json-jackson /) Например, как вы можете преобразовать объект в json. – Jens

ответ

3

Try:

Gson gson = new Gson(); 
gson.toJson(datalist); 
1

С помощью jackson object mapper вы можете сделать это:

ObjectMapper mapper = new ObjectMapper(); 

public String convertListArrayToJson(List<Object> objectList) throws JsonGenerationException, JsonMappingException, IOException { 
// declaring string type final json array 
String finalJsonArray = null; 

// declaring the output stream for binding the data into the data 
// variable 
final OutputStream out = new ByteArrayOutputStream(); 
// writing the data to the json format using the mapper 
mapper.writerWithDefaultPrettyPrinter().writeValue(out, objectList); 
// converting the output to the byte data 
final byte[] data = ((ByteArrayOutputStream) out).toByteArray(); 

// converting the byte data of json to the string and storing it to 
// the final json array 
finalJsonArray = new String(data); 


return finalJsonArray; 

}