Как преобразовать список в Json в Java
Как преобразовать общий список в json в Java. У меня есть класс, подобный этому.
public class Output
{
public int Keyname { get; set; }
public Object outputvalue{ get; set; } //outvalue may be even a object collection
}
List<Output> outputList = new List<Output>();
Я хочу преобразовать outputList в json в Java. После преобразования я отправлю его клиенту.
Ответы
Ответ 1
Для этого используйте библиотеку GSON. Вот пример кода
List<String> foo = new ArrayList<String>();
foo.add("A");
foo.add("B");
foo.add("C");
String json = new Gson().toJson(foo );
Вот зависимость maven для Gson
<dependencies>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
Или вы можете напрямую загрузить jar отсюда и поместить его в свой путь к классу.
http://code.google.com/p/google-gson/downloads/detail?name=gson-1.0.jar&can=4&q=
Чтобы отправить Json клиенту, вы можете использовать spring или в простой сервлет добавить этот код
response.getWriter() писать (JSON);.
Ответ 2
Для этого вам нужна внешняя библиотека.
JSONArray jsonA = JSONArray.fromObject(mybeanList);
System.out.println(jsonA);
Google GSON является одной из таких библиотек
Вы также можете посмотреть здесь на примерах по преобразованию коллекции объектов Java в строку JSON.
Ответ 3
Посмотрите на библиотеку google gson. Он предоставляет богатый api для работы с этим и очень прост в использовании.
Ответ 4
Попробуйте следующее:
public void test(){
// net.sf.json.JSONObject, net.sf.json.JSONArray
List objList = new ArrayList();
objList.add("obj1");
objList.add("obj2");
objList.add("obj3");
HashMap objMap = new HashMap();
objMap.put("key1", "value1");
objMap.put("key2", "value2");
objMap.put("key3", "value3");
System.out.println("JSONArray :: "+(JSONArray)JSONSerializer.toJSON(objList));
System.out.println("JSONObject :: "+(JSONObject)JSONSerializer.toJSON(objMap));
}
вы можете найти API здесь.
Ответ 5
Для простоты и хорошо структурированного использования используйте SpringMVC. Это просто так.
@RequestMapping("/carlist.json")
public @ResponseBody List<String> getCarList() {
return carService.getAllCars();
}
Справка и кредит: https://github.com/xvitcoder/spring-mvc-angularjs
Ответ 6
Используйте GSONBuilder с setPrettyPrinting и disableHtml для хорошего вывода.
String json = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().
create().toJson(outputList );
fileOut.println(json);