GSON解析

    技术2026-04-04  13

    对于GSON来说,比较容易解析简单数据,但复杂数据就比较难了 将json转换为对象

    final String jsons=" {\"temp\": \"20℃/30℃\",\"weather\": \"晴转多云\",\"name\": \"上海\",\"wind\": \"1级\"}"; gson1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Gson gson=new Gson(); com.example.demo.jsons jsons1 = gson.fromJson(jsons, com.example.demo.jsons.class); zq.setText(jsons); zh.setText(jsons1.toString()); } }); public class jsons { private String temp; private String weather; @Override public String toString() { return "jsons{" + "temp='" + temp + '\'' + ", weather='" + weather + '\'' + '}'; } public jsons(String temp, String weather) { this.temp = temp; this.weather = weather; } public String getTemp() { return temp; } public void setTemp(String temp) { this.temp = temp; } public String getWeather() { return weather; } public void setWeather(String weather) { this.weather = weather; } }

    将数组转换为对象

    final String gson23="[\n" + " {\n" + " \"id\": 1,\n" + " \"image\": \"http://123\",\n" + " \"name\": \"大虾1\",\n" + " \"price\": 12.3\n" + " },\n" + " {\n" + " \"id\": 2,\n" + " \"image\": \"htpp://123.jpg\",\n" + " \"name\": \"大虾2\",\n" + " \"price\": 12\n" + " }\n" + "]"; gson2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Gson gsonss2=new Gson(); Type list=new TypeToken<List<jsonsz>>(){}.getType(); List<jsonsz> o = gsonss2.fromJson(gson23,list); zq.setText(gson23); zh.setText(o.toString()); //使用Gson进行解析 } }); public class jsonsz { /** * id : 1 * image : http://123 * name : 大虾1 * price : 12.3 */ private int id; private String image; private String name; private double price; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "jsonsz{" + "id=" + id + ", image='" + image + '\'' + ", name='" + name + '\'' + ", price=" + price + '}'; } }

    将对象转换为json

    public class jsons { private String temp; private String weather; @Override public String toString() { return "jsons{" + "temp='" + temp + '\'' + ", weather='" + weather + '\'' + '}'; } public jsons(String temp, String weather) { this.temp = temp; this.weather = weather; } public String getTemp() { return temp; } public void setTemp(String temp) { this.temp = temp; } public String getWeather() { return weather; } public void setWeather(String weather) { this.weather = weather; } } gson4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { jsons jsons1=new jsons("鲤鱼","123"); Gson gson=new Gson(); String json=gson.toJson(jsons1); zh.setText(json); } });

    将对象转换为数组

    package com.example.demo; public class jsonsz { /** * id : 1 * image : http://123 * name : 大虾1 * price : 12.3 */ private int id; private String image; private String name; private double price; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "jsonsz{" + "id=" + id + ", image='" + image + '\'' + ", name='" + name + '\'' + ", price=" + price + '}'; } } gson5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { jsons jsons1=new jsons("鲤鱼","123"); jsons jsons2=new jsons("aaa","ccc"); List<jsons> list=new ArrayList<>(); list.add(jsons1); list.add(jsons2); Gson gson=new Gson(); String json=gson.toJson(list); zh.setText(json); } });
    Processed: 0.012, SQL: 9