Gson的使用
来源:互联网 发布:c语言基础知识要点 编辑:程序博客网 时间:2024/06/07 16:15
下面例子主要包含两个意思,一个将Json字符串转换为对象
另一个将对象转换为字符串.
获取到服务器传递的Json字符串后,在as中安装插件GsonFormat,按快捷键alt+s,把Json字符串粘贴进去,会自动生成bean对象.
package com.example.administrator.weatherforecast;import android.app.Activity;import android.os.Bundle;import android.view.View;import com.example.administrator.weatherforecast.bean.User;import com.example.administrator.weatherforecast.bean.Weather;import com.google.gson.Gson;import java.util.List;public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); init(); } private void init() { findViewById(R.id.second_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { parseData(); } }); findViewById(R.id.second_btn2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { beanToJson(); } }); } /** * 将bean转换为Json字符串 */ private void beanToJson() { User zhangsan = new User(13, "zhangsan"); Gson gson = new Gson(); String sGson = gson.toJson(zhangsan); System.out.println(sGson); /** * 06-07 11:07:42.568 20971-20971/com.example.administrator.weatherforecast I/System.out: {"name":"zhangsan","age":13} */ } /** * 解析json数据 */ private void parseData() { String jsonstring = "{\"coord\":{\"lon\":116.4,\"lat\":39.91},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01d\"}],\"base\":\"stations\",\"main\":{\"temp\":291.15,\"pressure\":1009,\"humidity\":82,\"temp_min\":291.15,\"temp_max\":291.15},\"visibility\":10000,\"wind\":{\"speed\":2,\"deg\":120},\"clouds\":{\"all\":0},\"dt\":1496739600,\"sys\":{\"type\":1,\"id\":7405,\"message\":0.0246,\"country\":\"CN\",\"sunrise\":1496695574,\"sunset\":1496749219},\"id\":1816670,\"name\":\"Beijing\",\"cod\":200}"; /** * { * "coord":{"lon":116.4,"lat":39.91}, * "weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}], * "base":"stations", * "main":{"temp":291.15,"pressure":1009,"humidity":82,"temp_min":291.15,"temp_max":291.15}, * "visibility":10000, * "wind":{"speed":2,"deg":120}, * "clouds":{"all":0}, * "dt":1496739600, * "sys":{"type":1,"id":7405,"message":0.0246,"country":"CN","sunrise":1496695574,"sunset":1496749219}, * "id":1816670, * "name":"Beijing", * "cod":200 * } */ Gson gson = new Gson(); Weather weatherBean = gson.fromJson(jsonstring, Weather.class); List<Weather.WeatherBean> weather = weatherBean.getWeather(); Weather.WeatherBean weatherBean1 = weather.get(0); String icon = weatherBean1.getIcon(); System.out.println("icon ="+icon); /** * 06-07 10:59:03.124 12918-12918/com.example.administrator.weatherforecast I/System.out: icon =01d */ }}
用工具生成的bean对象
package com.example.administrator.weatherforecast.bean;import java.util.List;/** * Created by liumeng on 2017/6/7 on 10:52 */public class Weather { /** * lon : 116.4 * lat : 39.91 */ private CoordBean coord; /** * coord : {"lon":116.4,"lat":39.91} * weather : [{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}] * base : stations * main : {"temp":291.15,"pressure":1009,"humidity":82,"temp_min":291.15,"temp_max":291.15} * visibility : 10000 * wind : {"speed":2,"deg":120} * clouds : {"all":0} * dt : 1496739600 * sys : {"type":1,"id":7405,"message":0.0246,"country":"CN","sunrise":1496695574,"sunset":1496749219} * id : 1816670 * name : Beijing * cod : 200 */ private String base; /** * temp : 291.15 * pressure : 1009 * humidity : 82 * temp_min : 291.15 * temp_max : 291.15 */ private MainBean main; private int visibility; /** * speed : 2 * deg : 120 */ private WindBean wind; /** * all : 0 */ private CloudsBean clouds; private int dt; /** * type : 1 * id : 7405 * message : 0.0246 * country : CN * sunrise : 1496695574 * sunset : 1496749219 */ private SysBean sys; private int id; private String name; private int cod; /** * id : 800 * main : Clear * description : clear sky * icon : 01d */ private List<WeatherBean> weather; public CoordBean getCoord() { return coord; } public void setCoord(CoordBean coord) { this.coord = coord; } public String getBase() { return base; } public void setBase(String base) { this.base = base; } public MainBean getMain() { return main; } public void setMain(MainBean main) { this.main = main; } public int getVisibility() { return visibility; } public void setVisibility(int visibility) { this.visibility = visibility; } public WindBean getWind() { return wind; } public void setWind(WindBean wind) { this.wind = wind; } public CloudsBean getClouds() { return clouds; } public void setClouds(CloudsBean clouds) { this.clouds = clouds; } public int getDt() { return dt; } public void setDt(int dt) { this.dt = dt; } public SysBean getSys() { return sys; } public void setSys(SysBean sys) { this.sys = sys; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCod() { return cod; } public void setCod(int cod) { this.cod = cod; } public List<WeatherBean> getWeather() { return weather; } public void setWeather(List<WeatherBean> weather) { this.weather = weather; } public static class CoordBean { private double lon; private double lat; public double getLon() { return lon; } public void setLon(double lon) { this.lon = lon; } public double getLat() { return lat; } public void setLat(double lat) { this.lat = lat; } } public static class MainBean { private double temp; private int pressure; private int humidity; private double temp_min; private double temp_max; public double getTemp() { return temp; } public void setTemp(double temp) { this.temp = temp; } public int getPressure() { return pressure; } public void setPressure(int pressure) { this.pressure = pressure; } public int getHumidity() { return humidity; } public void setHumidity(int humidity) { this.humidity = humidity; } public double getTemp_min() { return temp_min; } public void setTemp_min(double temp_min) { this.temp_min = temp_min; } public double getTemp_max() { return temp_max; } public void setTemp_max(double temp_max) { this.temp_max = temp_max; } } public static class WindBean { private int speed; private int deg; public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } public int getDeg() { return deg; } public void setDeg(int deg) { this.deg = deg; } } public static class CloudsBean { private int all; public int getAll() { return all; } public void setAll(int all) { this.all = all; } } public static class SysBean { private int type; private int id; private double message; private String country; private int sunrise; private int sunset; public int getType() { return type; } public void setType(int type) { this.type = type; } public int getId() { return id; } public void setId(int id) { this.id = id; } public double getMessage() { return message; } public void setMessage(double message) { this.message = message; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public int getSunrise() { return sunrise; } public void setSunrise(int sunrise) { this.sunrise = sunrise; } public int getSunset() { return sunset; } public void setSunset(int sunset) { this.sunset = sunset; } } public static class WeatherBean { private int id; private String main; private String description; private String icon; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMain() { return main; } public void setMain(String main) { this.main = main; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } }}
阅读全文
0 0
- Google-Gson的使用
- gson的使用
- Gson的使用
- android gson的使用
- android Gson的使用
- Gson的使用
- gson的使用
- Gson的使用汇总
- Gson的使用
- java gson的使用
- gson的使用
- Gson的使用
- Google Gson的使用
- Gson的嵌套使用
- Gson的使用
- Gson的详细使用
- gson的使用
- Gson的使用
- 某tv直播_sign算法
- Git更新远程分支列表
- matlab gui的handlevisibility属性
- js仿新浪微博消息发布功能
- python 数字拆分
- Gson的使用
- 给你八个参加SDCC 2017·深圳站不容错过的理由!
- Android简单的的小视频
- [原生js] 前端开发必须掌握的七个JavaScript技巧
- 基于Gitlab实现的配置中心(支持Docker)
- C++class默认生成4个函数
- C++中UTF-8转换成string
- 跨平台APP----对Cordova,APPCan,DCloud,APICloud四大平台的分析
- android4.2.2的stagefright架构下基于SurfaceFlinger的视频解码输出缓存创建机制