Как преобразовать список в 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);