JSON数据的生成
Json工具包的下载与导入
1.在官网找到json-lib 链接,下载json-lib-2.4-jdk15.jar
2.下载json-lib以来的包
3.养成好的习惯下载json -lib时间把源码包和doc包一起下载下来
4.导入到/WEB-INF/lib下
生成json数据
目录结构
JsonTools.java
package com.json.utils;
import net.sf.json.JSONObject;
/**
* Json工具类
*
* @author QT
*
*/
public class JsonTools {
/**
* 创造json数据的静态静态方法
* 调用json lib 中的类来创建json数据
* @param key json键
* @param value json 值
* @return json字符串数据
*/
public static String createJsonString(String key ,Object value){
//new 一个 JSONObject
JSONObject jsonObject=new JSONObject();
//放入键和值
jsonObject.put(key, value);
//toString()会自动帮你生成json数据
return jsonObject.toString();
}
}
- JsonService.java
package com.json.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.json.model.person;
/**
* Json 服务类
* 主要是得到需要转换为json格式的数据
* @author QT
*
*/
public class JsonService {
public JsonService() {
}
/**
* 字符串集合转换为json
* @return 字符串集合
*/
public static List<String> getString(){
List<String> list=new ArrayList<String>();
list.add("看不见你的笑");
list.add("我怎么睡得着");
return list;
}
/**
* 对象转换为json
* @return person对象
*/
public static person getPerson(){
person nick=new person(12,"nikan","87555",23);
return nick;
}
/**
* 对象集合转换为json
* @return 对象集合
*/
public static List<person> getPersonList(){
List<person> list=new ArrayList<person>();
person jack=new person(12,"jack","8dda",17);
person rose=new person(13,"rose","asyasj",18);
person summer=new person(14,"summer","87dada555",23);
list.add(jack);
list.add(rose);
list.add(summer);
return list;
}
/**
* 对象map集合转换为json
* @return 对象map集合
*/
public static List<Map<String,Object>> getMapList(){
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
Map<String,Object> map1=new HashMap<String, Object>();
map1.put("jack", new person(12,"jack","8dda",17));
map1.put("rose", new person(13,"rose","asyasj",18));
Map<String,Object> map2=new HashMap<String, Object>();
map2.put("summer", new person(14,"summer","87dada555",23));
list.add(map1);
list.add(map2);
return list;
}
}
- person.java
package com.json.model;
/**
* perosn 实体类
* @author QT
*
*/
public class person {
private int id;
private String name;
private String password;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public person(int id, String name, String password, int age) {
super();
this.id = id;
this.name = name;
this.password = password;
this.age = age;
}
public person() {
// TODO Auto-generated constructor stub
}
}
- 本地测试类 JsonTest.java
package com.json.test;
import com.json.service.JsonService;
import com.json.utils.JsonTools;
/**
* java 本地测试类
* @author QT
*
*/
public class JsonTest {
public JsonTest() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
String message="";
/*字符串集合转换为json信息*/
// message=JsonTools.createJsonString("Rainbow", JsonService.getString());
/*对象转换为json信息*/
//message=JsonTools.createJsonString("person", JsonService.getPerson());
/*对象集合转换为json信息*/
//message=JsonTools.createJsonString("List", JsonService.getPersonList());
/*对象map集合转换为json信息*/
message=JsonTools.createJsonString("Map", JsonService.getMapList());
System.out.println(message);
}
}
- 本地运行结果
- 基于浏览器读取json JsonServlet.java
package com.json.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.json.service.JsonService;
import com.json.utils.JsonTools;
public class JsonServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public JsonServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*设置内容编码格式,和request response流编码格式*/
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
/*
* 在网页上展示json信息
*/
PrintWriter out = response.getWriter();
String message=JsonTools.createJsonString("Map", JsonService.getMapList());
out.print(message);
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
JsonService jsonService =new JsonService();
}
}
- 浏览器运行结果