zoukankan      html  css  js  c++  java
  • Android解析JASON方式

    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},

    ]

    }

    首先,我们搭建一个服务器的工程:JsonProject这个项目,工程目录结构:

    源代码:

    Person.java

    1.package com.json.domain; 
    2. 
    3.public class Person { 
    4.    private int id; 
    5.    private String name; 
    6.    private String address; 
    7.     
    8.    public Person() { 
    9.        super(); 
    10.    } 
    11.    public Person(int id, String name, String addrss) { 
    12.        super(); 
    13.        this.id = id; 
    14.        this.name = name; 
    15.        this.address = addrss; 
    16.    } 
    17.    public int getId() { 
    18.        return id; 
    19.    } 
    20.    public void setId(int id) { 
    21.        this.id = id; 
    22.    } 
    23.    public String getName() { 
    24.        return name; 
    25.    } 
    26.    public void setName(String name) { 
    27.        this.name = name; 
    28.    } 
    29.    public String getAddress() { 
    30.        return address; 
    31.    } 
    32.    public void setAddress(String address) { 
    33.        this.address = address; 
    34.    } 
    35.    @Override 
    36.    public String toString() { 
    37.        return "Person [addrss=" + address + ", id=" + id + ", name=" + name 
    38.                + "]"; 
    39.    } 
    40.     
    41.} 
    JsonService.java

    1.package com.json.service; 
    2. 
    3.import java.util.ArrayList; 
    4.import java.util.HashMap; 
    5.import java.util.List; 
    6.import java.util.Map; 
    7. 
    8.import com.json.domain.Person; 
    9. 
    10.public class JsonService { 
    11. 
    12.    public JsonService() { 
    13.    } 
    14.     
    15.    public Person getPerson(){ 
    16.        Person person = new Person(1001,"jack","上海黄浦区"); 
    17.        return person; 
    18.    } 
    19.    public List<Person> getListPerson(){ 
    20.        List<Person> list = new ArrayList<Person>(); 
    21.        Person person1 = new Person(1001,"jack","上海黄浦区"); 
    22.        Person person2 = new Person(1002,"rose","上海闵行区"); 
    23.        Person person3 = new Person(1003,"mick","上海黄浦区"); 
    24.        list.add(person1); 
    25.        list.add(person2); 
    26.        list.add(person3); 
    27.        return list; 
    28.    } 
    29.     
    30.    public List<String> getListString(){ 
    31.        List<String> list = new ArrayList<String>(); 
    32.        list.add("北京"); 
    33.        list.add("上海"); 
    34.        list.add("湖南"); 
    35.        return list; 
    36.    } 
    37.     
    38.    public List<Map<String,Object>> getListMaps(){ 
    39.        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); 
    40.        Map<String,Object> map1 = new HashMap<String, Object>(); 
    41.        Map<String,Object> map2 = new HashMap<String, Object>(); 
    42.        map1.put("id", 1001); 
    43.        map1.put("name", "jack"); 
    44.        map1.put("address", "北京"); 
    45.        map2.put("id", 1001); 
    46.        map2.put("name", "rose"); 
    47.        map2.put("address", "上海"); 
    48.        list.add(map1); 
    49.        list.add(map2); 
    50.        return list; 
    51.    } 
    52.} 
    JsonServlet.java

    1.package com.json.servlet; 
    2. 
    3.import java.io.IOException; 
    4.import java.io.PrintWriter; 
    5. 
    6.import javax.servlet.ServletException; 
    7.import javax.servlet.http.HttpServlet; 
    8.import javax.servlet.http.HttpServletRequest; 
    9.import javax.servlet.http.HttpServletResponse; 
    10. 
    11.import com.json.service.JsonService; 
    12.import com.json.tools.JsonTools; 
    13. 
    14.public class JsonServlet extends HttpServlet { 
    15.    private JsonService service; 
    16.    /** 
    17.     * Constructor of the object. 
    18.     */ 
    19.    public JsonServlet() { 
    20.        super(); 
    21.    } 
    22. 
    23.    /** 
    24.     * Destruction of the servlet. <br> 
    25.     */ 
    26.    public void destroy() { 
    27.        super.destroy(); // Just puts "destroy" string in log 
    28.        // Put your code here 
    29.    } 
    30. 
    31.    /** 
    32.     * The doGet method of the servlet. <br> 
    33.     * 
    34.     * This method is called when a form has its tag value method equals to get. 
    35.     *  
    36.     * @param request the request send by the client to the server 
    37.     * @param response the response send by the server to the client 
    38.     * @throws ServletException if an error occurred 
    39.     * @throws IOException if an error occurred 
    40.     */ 
    41.    public void doGet(HttpServletRequest request, HttpServletResponse response) 
    42.            throws ServletException, IOException { 
    43. 
    44.        this.doPost(request, response); 
    45.    } 
    46. 
    47.    /** 
    48.     * The doPost method of the servlet. <br> 
    49.     * 
    50.     * This method is called when a form has its tag value method equals to post. 
    51.     *  
    52.     * @param request the request send by the client to the server 
    53.     * @param response the response send by the server to the client 
    54.     * @throws ServletException if an error occurred 
    55.     * @throws IOException if an error occurred 
    56.     */ 
    57.    public void doPost(HttpServletRequest request, HttpServletResponse response) 
    58.            throws ServletException, IOException { 
    59. 
    60.        response.setContentType("text/html;charset=utf-8"); 
    61.        request.setCharacterEncoding("utf-8"); 
    62.        response.setCharacterEncoding("utf-8"); 
    63.        PrintWriter out = response.getWriter(); 
    64.         
    65.        String jsonString = ""; 
    66.        String action_flag = request.getParameter("action_flag"); 
    67.        if(action_flag.equals("person")){ 
    68.            jsonString = JsonTools.createJsonString("person", service.getPerson()); 
    69.        }else if(action_flag.equals("persons")){ 
    70.            jsonString = JsonTools.createJsonString("persons", service.getListPerson()); 
    71.        }else if(action_flag.equals("listString")){ 
    72.            jsonString = JsonTools.createJsonString("listString", service.getListString()); 
    73.        }else if(action_flag.equals("listMap")){ 
    74.            jsonString = JsonTools.createJsonString("listMap", service.getListMaps()); 
    75.        } 
    76.        out.println(jsonString); 
    77.        out.flush(); 
    78.        out.close(); 
    79.    } 
    80. 
    81.    /** 
    82.     * Initialization of the servlet. <br> 
    83.     * 
    84.     * @throws ServletException if an error occurs 
    85.     */ 
    86.    public void init() throws ServletException { 
    87.        service = new JsonService(); 
    88.    } 
    89. 
    90.} 
    web.xml中servlet映射

    1.<servlet> 
    2.    <description>This is the description of my J2EE component</description> 
    3.    <display-name>This is the display name of my J2EE component</display-name> 
    4.    <servlet-name>JsonServlet</servlet-name> 
    5.    <servlet-class>com.json.servlet.JsonServlet</servlet-class> 
    6.  </servlet> 
    7. 
    8.  <servlet-mapping> 
    9.    <servlet-name>JsonServlet</servlet-name> 
    10.    <url-pattern>/servlet/JsonServlet</url-pattern> 
    11.  </servlet-mapping> 
    我们通过浏览器

    访问地址一: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"}]}

    本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-03/80300.htm

  • 相关阅读:
    tar命令,vi编辑器
    Linux命令、权限
    Color Transfer between Images code实现
    利用Eclipse使用Java OpenCV(Using OpenCV Java with Eclipse)
    Matrix Factorization SVD 矩阵分解
    ZOJ Problem Set
    Machine Learning
    ZOJ Problem Set
    ZOJ Problem Set
    ZOJ Problem Set
  • 原文地址:https://www.cnblogs.com/lechance/p/4373381.html
Copyright © 2011-2022 走看看