服务器端生成JSON数据

JSON的全称是:JavaScript Object Notation,是一种轻量级的数据交换格式。它构建于两种结构:

1、"名称/值" 对的集合(a collection of name / value pairs)。

不同的语言中,它被理解为对象(Object),记录(Record),结构(struct),字典(Dictionary),哈希表(HashTable),有键列表(Keyed list),或者关联数组(Associative array)。

2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

JSON数据格式的特点:

JSON对象是一个无序的" '名称/值' 对"的集合,一个对象以“{”(左括号)开始, 以"}"(右括号)结束,每个"名称"后跟一个":"(冒号),名称/值 对之间使用","(逗号)分隔。

如:

{

"name":"jackson",

"age":100

}

稍微复杂一点的情况,数组是值的有序集合,一个数组以“[”(左中括号)开始,以"]"(右中括号)结束。值之间使用","(逗号)分隔。

如:

{

"studengs":

[

{"name": "jackson", "age": 100},

{"name": "michael", "age": 51},

]

}

源代码:

Person.java

<span style="font-size:14px;">package com.json.domain; 
 
public class Person { 
    private int id; 
    private String name; 
    private String address; 
     
    public Person() { 
        super(); 
    } 
    public Person(int id, String name, String addrss) { 
        super(); 
        this.id = id; 
        this.name = name; 
        this.address = addrss; 
    } 
    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 getAddress() { 
        return address; 
    } 
    public void setAddress(String address) { 
        this.address = address; 
    } 
    @Override 
    public String toString() { 
        return "Person [addrss=" + address + ", id=" + id + ", name=" + name 
                + "]"; 
    } 
     
} 
</span>
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.domain.Person; 
public class JsonService { 
    public JsonService() { 
    } 
    public Person getPerson(){ 
        Person person = new Person(1001,"jack","上海黄浦区"); 
        return person; 
    } 
    public List<Person> getListPerson(){ 
        List<Person> list = new ArrayList<Person>(); 
        Person person1 = new Person(1001,"jack","上海黄浦区"); 
        Person person2 = new Person(1002,"rose","上海闵行区"); 
        Person person3 = new Person(1003,"mick","上海黄浦区"); 
        list.add(person1); 
        list.add(person2); 
        list.add(person3); 
        return list; 
    } 
    public List<String> getListString(){ 
        List<String> list = new ArrayList<String>(); 
        list.add("北京"); 
        list.add("上海"); 
        list.add("湖南"); 
        return list; 
    } 
    public List<Map<String,Object>> getListMaps(){ 
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); 
        Map<String,Object> map1 = new HashMap<String, Object>(); 
        Map<String,Object> map2 = new HashMap<String, Object>(); 
        map1.put("id", 1001); 
        map1.put("name", "jack"); 
        map1.put("address", "北京"); 
        map2.put("id", 1001); 
        map2.put("name", "rose"); 
        map2.put("address", "上海"); 
        list.add(map1); 
        list.add(map2); 
        return list; 
    } 
} 
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.tools.JsonTools; 
public class JsonServlet extends HttpServlet { 
    private JsonService service; 
    /** 
     * 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 { 
        this.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 { 
        response.setContentType("text/html;charset=utf-8"); 
        request.setCharacterEncoding("utf-8"); 
        response.setCharacterEncoding("utf-8"); 
        PrintWriter out = response.getWriter(); 
         
        String jsonString = ""; 
        String action_flag = request.getParameter("action_flag"); 
        if(action_flag.equals("person")){ 
            jsonString = JsonTools.createJsonString("person", service.getPerson()); 
        }else if(action_flag.equals("persons")){ 
            jsonString = JsonTools.createJsonString("persons", service.getListPerson()); 
        }else if(action_flag.equals("listString")){ 
            jsonString = JsonTools.createJsonString("listString", service.getListString()); 
        }else if(action_flag.equals("listMap")){ 
            jsonString = JsonTools.createJsonString("listMap", service.getListMaps()); 
        } 
        out.println(jsonString); 
        out.flush(); 
        out.close(); 
    } 
    /** 
     * Initialization of the servlet. <br> 
     * 
     * @throws ServletException if an error occurs 
     */ 
    public void init() throws ServletException { 
        service = new JsonService(); 
    } 
} 
web.xml中servlet映射

<span style="font-size:14px;"><servlet> 
    <description>This is the description of my J2EE component</description> 
    <display-name>This is the display name of my J2EE component</display-name> 
    <servlet-name>JsonServlet</servlet-name> 
    <servlet-class>com.json.servlet.JsonServlet</servlet-class> 
  </servlet> 
 
  <servlet-mapping> 
    <servlet-name>JsonServlet</servlet-name> 
    <url-pattern>/servlet/JsonServlet</url-pattern> 
  </servlet-mapping> </span>
<span style="font-size:14px;">
</span>

访问地址一:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=person

输出以下结果:

{"persons":{"address":"上海黄浦区","id":1001,"name":"jack"}}

访问地址二:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=persons

输出以下结果:

{"persons":[{"address":"上海黄浦区","id":1001,"name":"jack"},{"addrss":"上海闵行区","id":1002,"name":"rose"},{"address":"上海黄浦区","id":1003,"name":"mick"}]}

访问地址三:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=listString

输出以下结果:

{"persons":["北京","上海","湖南"]}

访问地址四:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=listMap

输出以下结果:

{"persons":[{"id":1001,"address":"北京","name":"jack"},{"id":1001,"address":"上海","name":"rose"}]}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值