AnalysisJson#1

1.什麼是JSON? (http://www.json.org/

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming LanguageStandard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

image

image

 

2.Json數據類型

2-1.json對象

image

2-2.json數組

image

 

3.解析JSON數據(小編使用的GSON進行json數據的解析)

3-1 【JSONObject的解析】

下面是一段json數據:

{
    "resultcode": "200",
    "reason": "successed!",
    "result": {
        "sk": {
            "temp": "24",
            "wind_direction": "西南風",
            "wind_strength": "2級",
            "humidity": "51%",
            "time": "10:11"
        },
        "today": {
            "temperature": "16℃~27℃",
            "weather": "陰轉多雲",
            "weather_id": {
                "fa": "02",
                "fb": "01"
            },
            "wind": "西南風3-4 級",
            "week": "星期四",
        },
        "future": [
            {
                "temperature": "16℃~27℃",
                "weather": "陰轉多雲",
                "weather_id": {
                    "fa": "02",
                    "fb": "01"
                },
                "wind": "西南風3-4 級",
                "week": "星期四",
                "date": "20150604"
            }, 
        ]
    },
    "error_code": 0
}

我們進行解析(解析一部分):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

package cn.edu.bzu.json;

 

import java.io.FileNotFoundException;

import java.io.FileReader;

 

import com.google.gson.JsonArray;

import com.google.gson.JsonIOException;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;

import com.google.gson.JsonSyntaxException;

 

public class Read {

    public static void main(String args[]){

        JsonParser parse =new JsonParser();  //創建json解析器

        try {

            JsonObject json=(JsonObject) parse.parse(new FileReader("weather.json")); 

                //創建jsonObject對象

            System.out.println("resultcode:"+json.get("resultcode").getAsInt());  

                //將json數據轉爲爲int型的數據

            System.out.println("reason:"+json.get("reason").getAsString());     

                //將json數據轉爲爲String型的數據

             

            JsonObject result=json.get("result").getAsJsonObject();

            JsonObject today=result.get("today").getAsJsonObject();

            System.out.println("temperature:"+today.get("temperature").getAsString());

            System.out.println("weather:"+today.get("weather").getAsString());

             

        catch (JsonIOException e) {

            e.printStackTrace();

        catch (JsonSyntaxException e) {

            e.printStackTrace();

        catch (FileNotFoundException e) {

            e.printStackTrace();

        }

    }

}

3-2 【JSONArray的解析】

下面是一個json文件

{
"cat":"it",
"language":[
{"id":1,"ide":"eclipse","name":Java},
{"id":2,"ide":"XCode","name":"Swift"},
{"id":3,"ide":"Visual Stdio","name":"C#"}
],
"pop":true
}

解析:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

package cn.edu.bzu.json;

 

import java.io.FileNotFoundException;

import java.io.FileReader;

 

import com.google.gson.JsonArray;

import com.google.gson.JsonIOException;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;

import com.google.gson.JsonSyntaxException;

 

public class ReadJSON {

    public static void main(String args[]){

        try {

             

            JsonParser parser=new JsonParser();  

//創建JSON解析器

            JsonObject object=(JsonObject) parser.parse(new FileReader("test.json"));  

//創建JsonObject對象

            System.out.println("cat="+object.get("cat").getAsString()); 

//將json數據轉爲爲String型的數據

            System.out.println("pop="+object.get("pop").getAsBoolean()); 

//將json數據轉爲爲boolean型的數據

             

            JsonArray array=object.get("language").getAsJsonArray();    

//得到爲json的數組

            for(int i=0;i<array.size();i++){

                System.out.println("---------------");

                JsonObject subObject=array.get(i).getAsJsonObject();

                System.out.println("id="+subObject.get("id").getAsInt());

                System.out.println("name="+subObject.get("name").getAsString());

                System.out.println("ide="+subObject.get("ide").getAsString());

            }

             

        catch (JsonIOException e) {

            e.printStackTrace();

        catch (JsonSyntaxException e) {

            e.printStackTrace();

        catch (FileNotFoundException e) {

            e.printStackTrace();

        }

    }

}

   
   
   

3-3 【分析】

我們通過Gson進行解析,所以在使用前需要導入Gson.jar

解析json數據時,

1.需要進行創建Gson解析器

2.創建JSONObject對象

3.將json數據轉爲爲相應的數據

 

4.源代碼下載:

https://github.com/monsterLin/TestReadJSON

5.轉載:

https://www.cnblogs.com/boy1025/p/4551593.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章