JSON数据的生成
2015-07-27 16:46
579 查看
JSON数据的生成
Json工具包的下载与导入
1.在官网找到json-lib 链接,下载json-lib-2.4-jdk15.jar2.下载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(); } }
浏览器运行结果
相关文章推荐
- base64的js实现
- select元素javascript常用操作 转
- JS禁止选中文本方法
- js数组的操作
- 用JavaScript将Canvas内容转化成图片的方法
- JavaScript 防止事件冒泡
- javascript实现类似于新浪微博搜索框弹出效果的方法
- JavaScript(二) DOM
- Javascript 严格模式详解
- JS 错误处理与调试
- json的使用
- JavaScript动态提示输入框输入字数的方法
- Emoji characters cannot be encoded to JSON
- 用js正则判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)
- js学习总结
- 【JavaScript】数据类型
- js与后台交互详述(入门篇)
- javascript window对象
- js继承详解
- js事件学习心得