使用gson解析json数据
来源:互联网 发布:常用的办公软件 编辑:程序博客网 时间:2024/04/29 00:36
这是一篇小白的文章,写这篇文章时,我只会原生的json解析,第三方的gson,fastjson,包括刚听说的jackjson都是一知半解,今天写了一个demo,使用gson来解析json数据,希望对json解析的小白有些帮助。
首先是接口,我使用的是http://v.juhe.cn/weixin/query?key=78f723dccf85aea324a3cf0daac97f35,里面的结构不变,但是内容一直在更新。
其次我用的开发工具是eclipse。
好了,开始我们的gson解析json数据路程。
第一步,json数据的格式。
在网页打开上面的链接,获取数据source,放在在线代码格式化中格式化之后成为了这样:
我想获取的是最里层的title和source两个数据,其他数据就类似了。
第二步,创建工程,导入xutils和gson的jar包(这两个jar包可以百度到)。
第三步,创建javabean。这个结构最外层是{},所以先新建个One.java的类来存储数据。
public class One { private String reason; private Two result; public Two getResult() { return result; } public void setResult(Two result) { this.result = result; } public String getReason() { return reason; } public void setReason(String reason) { this.reason = reason; } @Override public String toString() { return "One [reason=" + reason + "]"; }}
*注意:
1.变量名字要和键值对中的键保持一致。我试过将reason换成reasona,就解析不出来了。
2.因为result对应的是一个{},所以这对大括号需要用新的javabean来存储,我定义了Two来存储。*
public class Two { private String ps; private List<Three> list; public String getPs() { return ps; } public void setPs(String ps) { this.ps = ps; } public List<Three> getList() { return list; } public void setList(List<Three> list) { this.list = list; } @Override public String toString() { return "Two [ps=" + ps + "]"; }}
注意:因为list对应的数据是[],是一个集合,所以用list来存储。其中Three是最里层的javabean对象。
public class Three { private String title; private String source; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } @Override public String toString() { return "Three [title=" + title + ", source=" + source + "]"; }}
到此javabean对象就写完了。
第四步:mainactivity中请求数据,解析数据.
public class MainActivity extends Activity { private String wechat_url = "http://v.juhe.cn/weixin/query?key=78f723dccf85aea324a3cf0daac97f35"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HttpUtils httpUtils = new HttpUtils(); httpUtils.send(HttpMethod.GET, wechat_url, new RequestCallBack<String>() { @Override public void onFailure(HttpException arg0, String arg1) { // TODO Auto-generated method stub } @Override public void onSuccess(ResponseInfo<String> arg0) { String result = arg0.result; Log.i("result", "==result===" + result); Gson gson = new Gson(); One one = gson.fromJson(result, One.class); Log.i("one", "==one===" + one); Two two = one.getResult(); List<Three> list = two.getList(); for (int i = 0; i < list.size(); i++) { String title = list.get(i).getTitle(); String source = list.get(i).getSource(); Log.i("title", "==title===" + title); Log.i("source", "==source===" + source); } } }); }}
完毕。
1 0
- 使用GSON 解析JSON 数据
- 使用Gson解析json数据
- 使用Gson解析json数据
- 使用Gson解析json数据
- 使用Gson解析json数据
- 使用Gson解析json数据
- 使用Gson解析Json数据
- 使用GSON解析json数据
- 使用gson解析json数据
- 使用Gson解析json数据
- 解析Json数据:使用Gson进行解析json数据<二>
- Android中使用Gson解析JSON数据
- Android中使用Gson解析JSON数据
- Android中使用Gson解析JSON数据
- Android中使用Gson解析JSON数据
- Android中使用Gson解析JSON数据
- Android中使用Gson解析JSON数据
- Android下使用Gson解析JSON数据
- windows下 Ruby使用国内https源时出现的ssl报错的解决办法
- PHP CURL CURLOPT参数说明(curl_setopt)
- testlink安装过程中, Creating connection to Database Server: Failed!
- leetcode 338. Counting Bits
- 【腾讯Bugly干货分享】RecyclerView 必知必会
- 使用gson解析json数据
- 灵活软件之路——面向对象的六大原则
- 文章标题 AngularJs 之 模态框
- HDU 1215 因子相加
- 瓷砖问题
- 内存不足 java.lang.OutOfMemoryError: Java heap space
- Winform控件缩放
- iOS的一些常见系统Notification(系统消息)
- 重置css默认样式