如何在Java中将通用列表转换为json。我有这样的类..
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>();
我想在Java中将outputList转换为json。转换后我会将它发送给客户端。
答案 0 :(得分:100)
使用GSON库。这是示例代码
List<String> foo = new ArrayList<String>();
foo.add("A");
foo.add("B");
foo.add("C");
String json = new Gson().toJson(foo );
这是Gson的maven依赖
<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或简单的servlet添加此代码
response.getWriter()写(JSON);
答案 1 :(得分:12)
你需要一个外部库。
JSONArray jsonA = JSONArray.fromObject(mybeanList);
System.out.println(jsonA);
Google GSON是此类库之一
您还可以查看here以获取有关将Java对象集合转换为JSON字符串的示例。
答案 2 :(得分:3)
查看google gson库。它提供了一个丰富的API来处理这个问题,并且非常简单易用。
答案 3 :(得分:3)
试试这个:
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 here。
答案 4 :(得分:2)
为了简单和结构良好,请使用SpringMVC。它就这么简单。
@RequestMapping("/carlist.json")
public @ResponseBody List<String> getCarList() {
return carService.getAllCars();
}
答案 5 :(得分:2)
jackson提供了非常有用且轻量级的API,可将Object转换为JSON,反之亦然。请在下面找到示例代码来执行操作
List<Output> outputList = new ArrayList<Output>();
public static void main(String[] args) {
try {
Output output = new Output(1,"2342");
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(output);
System.out.println(jsonString);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
还有许多其他功能和杰出的API API文档。你可以参考像这样的链接:https://www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial ..
要包含在项目中的依赖项是
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.1</version>
</dependency>
答案 6 :(得分:0)
将GSONBuilder与setPrettyPrinting和disableHtml一起使用以获得良好的输出。
String json = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().
create().toJson(outputList );
fileOut.println(json);