天天看點

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json

1:Gson下載下傳

1.1:maven倉庫

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

           

1.2:Gradle下載下傳

compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'

           

1.3:直接下載下傳jar包

Gson jar下載下傳:點這裡下載下傳jar包

2:解析json

不長篇大作了,除了耽擱時間沒啥意思,人生苦短,直接上代碼。

想詳細了解的,請自行百度。

2.1待解析的json檔案

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json
{
    "status": 0,
    "message": "query ok",
    "request_id": "16d6a60c-3ba2",
    "result": {
        "location": {
            "lat": 36,
            "lng": 117
        },
        "address": "中國山東"
		}
	"content":[
        {"id":"25871","name":"濟南"},
        {"id":"4646","name":"濟甯"},
    ]
}
           

2.2:建立Json.java類

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json
public class Json {
	
	private String message;
	
	private Result result;
	
	public String getMessage(){
		return message;
	}
	
	public Result getResult(){
		return result;
	}
	
	public static class Result{
		
		private String address;
		
		private List<Content> content;
		
		public String getAddress(){
			return address;
		}
		
		public List<Content> getContent(){
			return content;
		}
		
		public static class Content{
			
		}
		
	}
}

           

2.3:解析json字元串

這裡的 result 是你的json字元串

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json
result = stringBuffer.toString();
	Gson gson = new Gson();
	Json json = (Json) gson.fromJson(result, Json.class);
	System.out.println(json.getMessage());
	System.out.println(json.getResult().getAddress());
				
           

3:解析json數組

3.1:json數組

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json
[
  {
    "id": 3406,
    "pid": 3400,
    "city_code": "101220103",
    "city_name": "肥東縣",
    "post_code": null,
    "area_code": null,
    "ctime": "2019-07-11 16:39:11"
  },
  {
    "id": 3407,
    "pid": 3400,
    "city_code": "101220104",
    "city_name": "肥西縣",
    "post_code": null,
    "area_code": null,
    "ctime": "2019-07-11 17:19:23"
  }
]

           

3.2:CIty.java類

使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json使用Gson解析JSON資料,Gson下載下傳,json資料解析,java解析json
public class City {
	
		private int id;
		
		private int pid;
		
		private String city_code;
		
		private String city_name;

		public int getId() {
			return id;
		}

		public int getPid() {
			return pid;
		}

		public String getCity_code() {
			return city_code;
		}

		public String getCity_name() {
			return city_name;
		}
		
}
           

3.3:解析擷取

這裡的 themsg 指的是你要處理的json資料

//Json的解析類對象
		    JsonParser parser = new JsonParser();
		    //将JSON的String 轉成一個JsonArray對象
		    JsonArray jsonArray = parser.parse(themsg).getAsJsonArray();
		    
		    ArrayList<City> userBeanList = new ArrayList<>();
		    
		  //加強for循環周遊JsonArray
		    for (JsonElement user : jsonArray) {
		        //使用GSON,直接轉成Bean對象
		        City userBean = gson2.fromJson(user, City.class);
		        userBeanList.add(userBean);
		    }
			
		    System.out.println(userBeanList);
		    for(int i = 0;i<userBeanList.size();i++){	    					
		    		System.out.println(userBeanList.get(i).getCity_name());
		    }