JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。JSON有两种结构:对象、数组

1、JSON对象: 名称用引号括起来,值如果是字符串则必须用括号,数值型则不须要,例如:

    var obj={"id":"001","name":"李四","sex":"男"};

2、JSON数组: 数组是值(value)的有序集合,例如:

    var array=[{"id":"001","name":"李四","sex":"男"},

                   {"id":"002","name":"程靓","sex":"女"},

                   {"id":"003","name":"王五","sex":"男"}]

JSON格式数据传输,是以文本(字符串)形式传递的。JavaScript操作JSON数据,是以JSON对象进行的。

JSON字符串: var str = '{ "name": "李四", "sex": "男" }';

JSON对象: var obj = { "name": "李四", "sex": "男" };

 

JSON对象和JSON字符串的相互转换

 

    1、“JSON对象”-à“JSON字符串”

        (1)var obj = eval('(' + str + ')');

        (2)var obj = str.parseJSON();

        (3)var obj = JSON.parse(str);

     注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

    2、“JSON字符串”-à“JSON对象”

        var str=obj.toJSONString();

        var str=JSON.stringify(obj);

<%@ page language="java" pageEncoding="GBK"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
    <base>  
    <title></title>  
  <script type="text/javascript" src="<%=request.getContextPath() %>/js/json.js"></script>  
  <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.2.6.js"></script></head>  
  <body>  
    <input type="button" value="GO" onclick="JsonToStr()" />  
  </body>  
  <script type="text/javascript">  
  var str="{ \"name\": \"江高波\", \"sex\": \"老男人\" }";   
  var str1="{ \"name\": \"江高波111\", \"sex\": \"老男人111\" }";   
  var str2="{ \"name\": \"江高波222\", \"sex\": \"老男人222\" }";   
  var json={ "name": "李四", "sex": "" };   
  var jsonArray=[{ "name": "张傘", "sex": "" },{ "name": "李四", "sex": "" }];   
     
  //json对象数据读取   
  function redJson(){   
    alert(json.name+""+json.sex+"人.");   
  }   
     
  //json数组对象数据读取   
  function redJsonArray(){   
    alert(jsonArray.length);//json数组长度   
    for(var i=0;i<jsonArray.length;i++){//json数组遍历   
      var obj=jsonArray[i];   
      alert(obj.name+""+obj.sex+"人.");   
    }   
  }   
     
  //字符串转json   
  function strJson(){   
    var obj= eval('(' + str + ')');//方法一   
    alert(obj);   
    alert(obj.name+""+obj.sex+"人.");   
       
    obj=str1.parseJSON();//方法二   
    alert(obj);   
    alert(obj.name+""+obj.sex+"人.");   
       
    obj=JSON.parse(str2);//方法三   
    alert(obj);   
    alert(obj.name+""+obj.sex+"人.");   
       
  }   
     
  //字符串转json   
   function strJson1(){   
     var obj=new Object();//对象   
     obj.name="名字";   
     obj.age="25";   
     obj.sex="不男不女";   
     var jsonStr=obj.toJSONString();//对象转成json字符串   
     var json=eval('(' + jsonStr + ')');//json字符串转成json   
     alert(json);   
   }   
      
  //json to string   
  function JsonToStr(){   
    alert(json);   
    var mystr=json.toJSONString();//JSON to JSONString   
    alert(mystr);   
       
    alert(jsonArray);   
    mystr=jsonArray.toJSONString();//JSON array to JSONString   
    alert(mystr);   
       
    var myj=mystr.parseJSON();//JSONString to JSON   
    alert(myj);   
    for(var i=0;i<myj.length;i++){   
      alert(myj[i].name+myj[i].sex);   
    }   
  }   
  </script>  
</html>  
import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;   
import net.sf.json.JSONArray;   
import net.sf.json.JSONObject;   
public class JavaJSON {   
    public void ToJSON(){   
        //1、数组转换成JSON   
        String[] array=new String[10];   
        for(int i=0;i<10;i++)   
            array[i]="KKK"+String.valueOf(i);   
        JSONArray jsonArray = JSONArray.fromObject(array);   
        System.out.println(jsonArray);   
        //prints ["KKK0","KKK1","KKK2","KKK3","KKK4","KKK5","KKK6","KKK7","KKK8","KKK9"]   
           
        //2、List转换成JSON   
        List list = new ArrayList();          
        list.add( "book" );          
        list.add( "food" );        
        list.add( "person" );    
        JSONArray jsonArray2 = JSONArray.fromObject( list );          
        System.out.println( jsonArray2 );          
        // prints ["book","food","person"]         
  
        //3、JSON字符串转换成JSON   
        JSONArray jsonArray3 = JSONArray.fromObject( "['中国','日本','美国']" );     
        System.out.println( jsonArray3 );   
        // prints ["中国","日本","美国"]   
           
        //4、Map转换成JSON   
        Map map=new HashMap();   
        map.put("姓名", "老毛");   
        map.put("性别", "男");   
        map.put("职务", "主*");   
        map.put("评价", "“人多力量大”害了中国中国人民");   
        JSONArray jsonArray4 = JSONArray.fromObject(map);   
        System.out.println( jsonArray4 );   
        // prints [{"性别":"男","姓名":"老毛","职务":"主*","评价":"“人多力量大”害了中国中国人民"}]   
           
        //5、bean   
        Person p=new Person();   
        p.setCid("5303021584555");   
        p.setName("苍井空");   
        p.setSex("女");   
        p.setAddress("日本");   
        p.setNote("AV");   
        JSONObject jo=JSONObject.fromObject(p);   
        System.out.println(jo);   
        //prints {"address":"日本","cid":"5303021584555","name":"苍井空","note":"AV","sex":"女"}   
    }   
}  

 

posted @ 2015-05-14 17:28  zxczxczxc123  阅读(214)  评论(0编辑  收藏  举报