• android json解析详细介绍之gson


    废话不多说,什么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;
        }
    }
       
  • 相关阅读:
    2020总结来了,文末有福利
    CentOS 用户请关注,你期待的 CentOS Linux 9 再也不会来了
    全球最好的10款波尔多葡萄酒,拉菲居然垫底
    eth以太坊合约开发工具集
    html格式的文字去掉html tag转为纯text文字
    如何隐藏X-Powered-By
    aiXcoder3.0呼之欲出,代码补全 AI,带你进入「个性化智能编程时代」
    windows故障群集修改心跳网卡【原创】
    keepalived非争抢机制不生效报错Received lower prio advert, forcing new election
    MySQL主从复制,启动slave时报错1872 Slave failed to initialize relay log info structure from the repository
  • 原文地址:https://www.cnblogs.com/lingzhiwen/p/4641170.html
Copyright © 2020-2023  润新知