Json介绍

来源:互联网 发布:域名劫持工具 编辑:程序博客网 时间:2024/05/23 00:07

需要导入这些包 :
commons-beanutils-1.7.0.jar  
commons-lang-2.1.jar 
ezmorph-1.0.2.jar 
json-lib-1.1-jdk15.jar

1.简单XML


XML格式:
<person> 
    <name>xiazdong</name> 
    <age>20</age> 
</person> 
<person>
<name>xiazdong</name>
<age>20</age>
</person>

JSON格式:


    "name":"xiazdong", 
    "age":20 

{
"name":"xiazdong",
"age":20
}

(1)JSON的数据结构只有两种:JSON包中最常用的两个类就是JSONObject和JSONArray。

1.Map
简单的说就是Java中的Map,名称-值对的形式给出,名称和值之间用“:”隔开,两个Map之间用“,”隔开,一般表示形式如下:
{'key1':'value1','key2':'value2'}

2.Array

就是普通意义上的数组,一般形式如下:
['arr1','arr2','arr3'];


(2)可以嵌套表示,比如Array中可以嵌套Object等;

(3)记住:Object是以{}表示,Array是以[  ]表示;

1.JSONObject代码实例 :
public class Test {  
    public static void main(String[] args) throws Exception{ 
        JSONObject jsonobj = new JSONObject("{'name':'xiazdong','age':20}"); 
        String name = jsonobj.getString("name"); 
        int age = jsonobj.getInt("age"); 
        System.out.println(name+":"+age);         
    } 

2.JSONArray代码实例 :
public class Test {  
    public static void main(String[] args) throws Exception{      
        JSONArray jsonarray = new JSONArray("[{'name':'xiazdong','age':20},{'name':'xzdong','age':15}]"); 
        for(int i=0;i<jsonarray.length();i++){ 
            String name = jsonarray.getJSONObject(i).getString("name"); 
            int age = jsonarray.getJSONObject(i).getInt("age"); 
            System.out.println("name="+name); 
            System.out.println("age="+age); 
        } 
         
    } 


3.嵌套JSONObject和JSONArray代码实例 :
public class Test {  
    public static void main(String[] args) throws Exception{  
        String str = "{'name':'xiazdong','age':20,'book':['book1','book2']"; 
        JSONObject obj = new JSONObject(str); 
        System.out.println(obj.getJSONArray("book").getString(0)); 
    } 

 

4.JSONStringer代码示例


JSONStringer可以用来快速构建一个JSON格式的文本,并转换成String,可以写入文件;
JSONStringer是JSONWriter的子类;
JSONStringer一般通过object().key().value().key().value().endObject()进行构造;
object()表明开始一个对象,即添加{  ;
endObject()表明结束一个对象,即添加 } ;
array()表明开始一个数组,即添加一个 [ ;
endArray()表明结束一个数组,即添加一个 ] ;
key()表示添加一个key;
value()表示添加一个value;

public class JsonStringerDemo {  
    public static void main(String[] args) throws Exception{ 
        JSONStringer stringer = new JSONStringer(); 
        String str = stringer.object().key("name").value("xiazdong").key("age").value(20).endObject().toString(); 
        System.out.println(str); 
    }  


5.复杂JSON格式写入 
 
public class JsonStringerDemo {  
    public static void main(String[] args) throws Exception{ 
         
        JSONStringer js = new JSONStringer(); 
        JSONObject obj2 = new JSONObject(); 
        JSONObject obj3 = new JSONObject(); 
        JSONObject obj4 = new JSONObject(); 
        obj4.put("title", "book1").put("price", "$11"); 
        obj3.put("book", obj4); 
        obj3.put("author", new JSONObject().put("name", "author-1")); 
         
        JSONObject obj5 = new JSONObject(); 
        JSONObject obj6 = new JSONObject(); 
        obj6.put("title", "book2").put("price", "$22"); 
        obj5.put("book", obj6); 
        obj5.put("author", new JSONObject().put("name", "author-2")); 
         
        JSONArray obj7 = new JSONArray(); 
        obj7.put(obj3).put(obj5);  
         
        obj2.put("title","BOOK"); 
        obj2.put("signing", obj7); 
         
        js.object().key("session").value(obj2).endObject(); 
         
        System.out.println(js.toString()); 
         
        PrintWriter out = new PrintWriter(new FileOutputStream(1.txt)); 
        out.println(js.toString());  
    }  

打印结果:

{"session":{"title":"BOOK","signing":[{"author":{"name":"author-1"},"book":{"title":"book1","price":"$11"}},{"author":{"name":"author-2"},"book":{"title":"book2","price":"$22"}}]}}

原创粉丝点击