Java讀取Json數據


 

1.JSON介紹

  JSON比XML簡單,主要體現在傳輸相同信息的情況下,文件的大小不同。
  JSON只用於傳輸信息,XML還可以用於配置文件的使用。
  JSON中的符號主要有: " , [ {:

 

2.JSON中的數組和對象

1.數組(JSONArray)
  數組用一對[],表示存放的是一般的數組數據。
  如:["11","22","33"],表示這是一個JSONArray數組,里面有3個數據:”11“,”22“,”33“。當然可以是復雜的數據,就是所謂的嵌套定義吧。
2.對象(JSONObject)
  對象用一對{},來表示其中JSON通用的”鍵-值“對。
  如:{"sex":"female","name":"zhangsan"},表示的是一個JSON對象,里面有兩組數據(鍵值對),sex=female,name=zhangsan。當然這里鍵對應的數據值,可以是復雜的JSON對象或者數組。

 

3.代碼示例

 基本的JSONArray與JSONObject操作

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray1 {
    public static void main(String args[])
    {
        JSONObject jsonObj  = new JSONObject();
        jsonObj.put("name", "zhangsan");
        jsonObj.put("sex", "female");
        System.out.println(jsonObj);    
        //輸出為:{"sex":"female","name":"zhangsan"}
        
        JSONArray jsonArray = new JSONArray();
        jsonArray.add("11");
        jsonArray.add("22");
        jsonArray.add("33");
        System.out.println(jsonArray);    
        //輸出為:["11","22","33"]
    }
}

 

 由java自帶的數據結構轉換為JSON文本

import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray2{
   
     public static void main(String args[])
    {
        //可以由數組,列表等生成JSONArray
        String list[]={"11","22"};
        JSONArray jsonArray = JSONArray.fromObject(list); 
        jsonarray.add("33");
        System.out.println(jsonarray);    //輸出為:["11","22","33"]
        
        //可以由Map生成JSONObject
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("NO1", "第一個");
        map.put("NO2", "第二個");
        map.put("NO3", jsonarray);
        
        JSONObject jsonObj  = JSONObject.fromObject(map);
        System.out.println(jsonObj);    
        //輸出為:{"NO3":["11","22","33"],"NO2":"第二個","NO1":"第一個"}
    }
}

 

 

讀取JSON文本

JSONArray必須用下標讀取內部數據。
JSONObject必須用”鍵“讀取對應的”值“。

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray {
    public static void main(String args[])
    {
        JSONArray jsonarray;
        JSONObject jsonObj;
        //讀取JSONArray,用下標索引獲取
        String array="[\"11\",\"22\",\"33\"]";
        jsonarray = JSONArray.fromObject(array); 
        System.out.println(jsonarray.getString(1));    //輸出為:22
        
        //讀取JSONObject
        String object="{\"NO1\":[\"44\",\"55\",\"66\"],\"NO2\":{\"NO1\":\"第一個\"}}";
        jsonObj  = JSONObject.fromObject(object);
        System.out.println(jsonObj.get("NO1"));    
        //輸出為:["44","55","66"]
        
        jsonarray = (JSONArray)(jsonObj.get("NO1")); 
        System.out.println(jsonarray.getString(1));  
        //輸出為:55
        
        //用"鍵"獲取值
        jsonObj=(JSONObject)jsonObj.get("NO2");
        System.out.println(jsonObj);    
        //輸出為:{"NO1":"第一個"}
        
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM