初识json

JSON用于描述数据结构,有两种基本形式存在。

  • 名称/值对(collection):名称和值之间使用“:”隔开,每个名称/值对之间使用“,”分区,并且使用“{”“}”括起来;一般的形式是:
{name:value}

这样的数据描述在不同的语言中会被解释成不同的形式,可能是对象,结构体,哈希表等。

  • 值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:
[collection, collection]

在很多语言中它被解释为数组。

json-simple ------http://code.google.com/p/json-simple/

  • Encoding Examples
  • Decoding Examples
  • Escaping Examples
  • JSP and AJAX Examples
  • Mapping Between JSON and Java Entities

    JSON Java
    string java.lang.String
    number java.lang.Number
    true|false java.lang.Boolean
    null null
    array java.util.List
    object java.util.Map

    实例:

    service.jsp:

      <%@page contentType="text/html; charset=UTF-8"%> 
      <%@page import="org.json.simple.JSONObject"%> 
      <% 
        JSONObject obj=new JSONObject(); 
        obj.put("name","foo"); 
        obj.put("num",new Integer(100)); 
        obj.put("balance",new Double(1000.21)); 
        obj.put("is_vip",new Boolean(true)); 
        obj.put("nickname",null); 
        out.print(obj); 
        out.flush(); 
      %>
     json_simple-1.1.jar in WEB-INF/lib 

    client.html:

    <html> 
    <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    </head> 
     
    <script type="text/javascript"> 
    function createXMLHttpRequest(){ 
      // See http://en.wikipedia.org/wiki/XMLHttpRequest 
      // Provide the XMLHttpRequest class for IE 5.x-6.x: 
      if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() { 
        try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {} 
        try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {} 
        try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {} 
        try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {} 
        throw new Error( "This browser does not support XMLHttpRequest." ) 
      }; 
      return new XMLHttpRequest(); 
    } 
     
    var AJAX = createXMLHttpRequest(); 
     
    function handler() { 
      if(AJAX.readyState == 4 && AJAX.status == 200) { 
          var json = eval('(' + AJAX.responseText +')'); 
          alert('Success. Result: name => ' + json.name + ',' + 'balance => ' + json.balance); 
      }else if (AJAX.readyState == 4 && AJAX.status != 200) { 
        alert('Something went wrong...'); 
      } 
    } 
     
    function show(){ 
      AJAX.onreadystatechange = handler; 
      AJAX.open("GET", "service.jsp"); 
      AJAX.send(""); 
    }; 
    </script> 
     
    <body> 
      <a href="#" onclick="javascript:show();"> Click here to get JSON data from the server side</a> 
    </html>
    原文地址:https://www.cnblogs.com/macula7/p/1960419.html