標籤:code Fix get hashmap extends request size domain map
Json.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="js/jquery-3.2.1.js"></script><script type="text/javascript" > $(function(){ $.post("JsonServlet",{method:"entityJson"},function(msg){ //console.log(msg);//調試 //接收過來是String 要轉成對象才能點裡面的屬性 var json = JSON.parse(msg); //字串---->對象 $("#Uname").val(json.uname);//給文字框中value賦值 $("#num").val(json.uid);//給文字框中value賦值 $("#addr").html(json.address); }); $.post("JsonServlet",{method:"jsonList"},function(pList){ //console.log(msg);//調試 //接收過來是String 要轉成對象才能點裡面的屬性 var pObj = $.parseJSON(pList);//字串----->數組對象 $.each(pObj,function(i,p){ var li = "<li>"+p.uid+"</li>"+"<li>"+p.uname+"</li>"+"<li>"+p.address+"</li>"+"<br/>"; $("#myUl").append(li); }); }); $("#btn").click(function(){ var url = "JsonServlet"; var data ={"method":"jsonMap"}; $.post(url,data,function(pMap){ var personMap = $.parseJSON(pMap);//json集合字串轉json對象 $.each(personMap,function(key,value){ $.each(value,function(i,person){ var li = "<li>"+person.uid+person.uname+person.address+"</li>"; $("#myMap").append(li); }); }); }); }); })</script></head><body><h3>Java實體(字串)轉JSON對象 JSON.parse(msg);</h3> ID:<input type="text" id="num"><br/> Name:<input type="text" id="Uname" ><br/> Address:<span id="addr" ></span> <hr><h3>Java集合轉JSON數組對象 $.parseJSON(pList)</h3> <ul id="myUl"> </ul> <hr><h3>Map集合轉JSON對象</h3> <button id=‘btn‘>擷取Map集合資料</button><ul id="myMap"></ul></body></html>
JsonServlet
package servlet;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.collections.map.HashedMap;import domain.Person;import net.sf.json.JSONArray;import net.sf.json.JSONObject;@WebServlet("/JsonServlet")public class JsonServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); if(method.equals("entityJson")) { //設定編碼格式 不然會顯示亂碼 response.setContentType("text/html;charset=utf-8"); Person p = new Person(1001, "張三", "男", "廣西"); // 1. java實體轉json對象 JSONObject jsonObj = JSONObject.fromObject(p); //發送資料 字串形式 response.getWriter().println(jsonObj); System.out.println(jsonObj); }else if(method.equals("jsonList")){ //設定編碼格式 不然會顯示亂碼 response.setContentType("text/html;charset=utf-8"); List<Person> pList = new ArrayList<Person>(); Person p1 = new Person(1001, "張三", "男", "廣西"); Person p2 = new Person(1002, "李四", "女", "廣東"); Person p3 = new Person(1003, "王五", "男", "四川"); pList.add(p1); pList.add(p2); pList.add(p3); JSONArray jsonObject = JSONArray.fromObject(pList); System.out.println("集合長度是"+jsonObject.size()); response.getWriter().println(jsonObject); }else if(method.equals("jsonMap")){ //設定編碼格式 不然會顯示亂碼 response.setContentType("text/html;charset=utf-8"); Map<String,Person> mp = new HashMap<String,Person>(); mp.put("管理員", new Person(1001, "張三", "男", "廣西")); mp.put("遊客", new Person(1002, "張四", "男", "廣西")); JSONArray jsonMap = JSONArray.fromObject(mp); //發送資料 response.getWriter().println(jsonMap); } }}
2018.7.27 Json與Java相互轉換