自己总结的json 各个细节,方便自己回顾
package com.cpic.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.io.*; import java.util.*; /** * json对象 * 1.json包6个 json.js和jquery.js * 2.resp.setContentType("appliction/json;charset=utf-8"); * resp.setContentType("text/javascript;charset=utf-8"); * dataType: "json", * 3.后台传过去的数据格式一定要对! * 4.接受解析的方法要对! * @author Administrator * */ public class JsonServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("appliction/json;charset=utf-8"); //获得前台数据 String sss = (String)req.getParameter("json"); PrintWriter out =resp.getWriter(); //------------------------------------------------ String name="zhangsan"; String age ="22"; //单个JSON对象:单个数据和多个数据(直接写入参数和变量两种) 请仔细查看格式! //正确 //out.print(JSONObject.fromObject("{test:'hehe',t2:'haha'}").toString()); //out.print(JSONObject.fromObject("{name:'"+name+"',age:'"+age+"'}").toString()); //错误没有引号 //out.print(JSONObject.fromObject("{test:hehe,t2:haha}").toString()); //out.print(JSONObject.fromObject("{name:"+name+","age:"+age+"}").toString()); //---------------------------------------------- //JSON数据对象:可以用数组 或者 用List //数组 //String[] str = GetFirstFloorValue(); //System.out.println(JSONArray.fromObject(str).toString()); //out.print(JSONArray.fromObject(str).toString()); //List //List<String> list =getList(); //System.out.println(JSONArray.fromObject(list).toString()); //out.print(JSONArray.fromObject(list).toString()); out.flush(); out.close(); } private String[] GetFirstFloorValue() { String[] str = new String[4]; String t="java1"; //错误的! // str[0] = "{test:"+t+",t2:"+t+"}"; // str[1] = "{test:"+t+",t2:"+t+"}"; // str[2] = "{test:"+t+",t2:"+t+"}"; // str[3] = "{test:"+t+",t2:"+t+"}"; // str[0] = "{test:桌面应用,t2:桌面应用}"; // str[1] = "{test:移动设备,t2:移动设备}"; // str[2] = "{test:服务器端,t2:服务器端}"; // str[3] = "{test:嵌入式开发,t2:嵌入式开发}"; //正确的! 一定要有引号! // str[0] = "{test:'"+t+"',test2:'"+t+"'}"; // str[1] = "{test:'"+t+"',test2:'"+t+"'}"; // str[2] = "{test:'"+t+"',test2:'"+t+"'}"; // str[3] = "{test:'"+t+"',test2:'"+t+"'}"; str[0] = "{test:'桌面应用',test2:'桌面应用'}"; str[1] = "{test:'移动设备',test2:'移动设备'}"; str[2] = "{test:'服务器端',test2:'服务器端'}"; str[3] = "{test:'嵌入式开发',test2:'嵌入式开发'}"; return str; } public List<String> getList(){ String name ="java2"; String age="22"; String a[]=new String[2]; a[0]="{name:'"+name+"',age:'"+age+"'}"; a[1]="{name:'"+name+"',age:'"+age+"'}"; List<String> list= new ArrayList<String>(); list.add(a[0]); list.add(a[1]); return list; } }
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <script src="./Js/jquery-1.6.4.js" language="javascript" ></script> <script src="./Js/json.js" language="javascript"></script> <script language="javascript"> function ads(){ $.ajax({ url: "json.do", type: "post", data: {json:$("#input").val(),test:$("#input").val()}, dataType: "json", success: function(msg){ //JSONObject //alert(msg.name+"|"+msg.age); //JSONArray 数组 //$.each(msg,function(i,item){ // alert(item.test+"|"+item.test2); //}) //JSONArray List //$.each(msg,function(i,item){ // alert(item.name+"|"+item.age); //}) } }) } </script> <input type="text" id="input" /> <input type="button" value="确定" onclick="ads()"/> <table id="tb"> </table> </html>