利用FastJson来解析网络数据

FastJson:阿里巴巴
主要特点:
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
零依赖(没有依赖其它任何类库除了JDK)
java语言最快的json库fastjson发布1.1.32版本,这个版本增加了stream api,支持处理超大json文本

首先需要添加依赖,

这里写图片描述

我们根据这个知乎的数据在Json工具下解析,

这里写图片描述

创建实体类,

**
 *  根实体类
 */
public class RootBean {

private long limit;
private List<InfoBean> others;

public long getLimit() {
return limit;
    }

public void setLimit(long limit) {
this.limit = limit;
    }

public List<InfoBean> getOthers() {
return others;
    }

public void setOthers(List<InfoBean> others) {
this.others = others;
    }
}
public class InfoBean {

private int color;
private String thumbnail;
private String description;
private int id;
private String name;

public int getColor() {
return color;
    }

public void setColor(int color) {
this.color = color;
    }

public String getThumbnail() {
return thumbnail;
    }

public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
    }

public String getDescription() {
return description;
    }

public void setDescription(String description) {
this.description = description;
    }

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 class MainActivity extends AppCompatActivity {

//知乎的数据
private String url = "http://news-at.zhihu.com/api/4/themes";
private RequestQueue queue;
private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

tv = (TextView) this.findViewById(R.id.tv);
queue = Volley.newRequestQueue(this);

        StringRequest sr = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
tv.setText(response);
//解析 知乎接口
RootBean rootBean = JSON.parseObject(response,RootBean.class);
//获取解析结果集合
List<InfoBean> datas = rootBean.getOthers();
//就可以设置到适配器了
tv.setText(datas.get(0).getDescription());
            }
        }, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

            }
        });
//加入队列
queue.add(sr);
    }
}

不仅能解析以上的数据,还可以解析value是文字的数据,

这里写图片描述

利用GsonFormat来解析数据,并创建数据类,

这里写图片描述

接下来,直接使用就可以了,


public class MainActivity extends AppCompatActivity {

//段子的数据
String url = "http://c.3g.163.com/recommend/getChanListNews?passport=&devId=866907021173843&size=20&channel=duanzi";
private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

tv = (TextView) this.findViewById(R.id.tv);


        RequestQueue requestQueue = Volley.newRequestQueue(this);

        StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//解析段子的数据
DuanZiBean duanZiBean = JSON.parseObject(response, DuanZiBean.class);
//可以获取value的数据
tv.setText(duanZiBean.get段子().get(0).getDigest());
            }
        }, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

            }
        });
        requestQueue.add(stringRequest);
    }
}

以上就是利用FastJson来解析网络数据并简单使用,

本人菜鸟一个,有什么不对的地方希望大家指出评论,大神勿喷,希望大家一起学习进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值