android json解析详细介绍之gson

时间:2021-10-08 22:25:02

废话不多说,什么json是轻量级数据交换标准;自己百度去深入了解;这里有三种json解析工具。本人只用过其中两种:

    1.Google Json利器之Gson   评价:简单,方便。

  2.阿里巴巴 Json利器之FastJson 评价:大数据的性能还是蛮快的。

  3.IBM Json利器之Json4J   少人用。

首先导入volley.jar和gson.jar的包;

在主配置文件里面加上internet权限‘

然后就是代码:

mainActivity.java

public class MainActivity extends Activity {
    //json数据的来源;豆瓣读书的接口。
    private String url = "https://api.douban.com/v2/book/1220562";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getData();
    }
    private void getData() {
        // TODO Auto-generated method stub
        StringRequest stringRequest = new StringRequest(url, new Listener<String>() {

@Override
            public void onResponse(String arg0) {
                Log.i("info", arg0);
                dealData(arg0);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError arg0) {
                // TODO Auto-generated method stub
            }
        });
        //使用Volley发送网路请求
        new Volley().newRequestQueue(getApplicationContext()).add(stringRequest);    
    }
    protected void dealData(String result) {
//json转化为对象;
        Gson gjson = new Gson();
        Book book = gjson.fromJson(result,Book.class);
        Log.i("info",book.getPublisher()+","+book.getSummary()+","+book.getTitle()+","+book.getTag().size());
    }

两个实体类:

Book.java

public class Book {
    private String title;
    private String publisher;
    private String summary;
    private ArrayList<Tag> tags;
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getPublisher() {
        return publisher;
    }
    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public ArrayList<Tag> getTag() {
        return tags;
    }
    public void setTag(ArrayList<Tag> tags) {
        this.tags = tags;
    }   
}

Tag.java

public class Tag {
/*
      "count": 133,
    "name": "片山恭一",
    "title": "片山恭一"
 */
    private String count;
    private String name;
    private String title;
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}