博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之JSON解析
阅读量:6006 次
发布时间:2019-06-20

本文共 2692 字,大约阅读时间需要 8 分钟。

  做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSON格式,XML格式的数据在处理时相对比较繁琐,并且Android为我们提供了两个解析JSON对象的类:JSONObject与JSONArray这两个对象可以很好的满足我们的需求,JSONArray对象可以以数组的形式将数据返回到手机,JSONObject对象则可以以对象的形式将数据为我们封装好返回,手机接收都这两种数据后,通过解析,可以很方便的使用,大大的方便了我们的开发学习。

  当然在使用JSONObject进行数据解析时,有两种方式,一种通过键值对的形式一个一个的取数据;另一种就是将JSONObject解析为具体的对象,然后通过对象的get、set方法进行数据的读取与操作,对于第一种方式,相信刚接触JSON解析的小童鞋都是这样干的,相对第一种方式,第二种方式更加的简单方便,下面我们就一起学习一下如何实现将JSONObject对象转化为具体的对象吧。

  因为今天我们要探讨的是关于JSONObject的解析,所以我就通过一个简单的对象创建--对象封装--对象解析--对象操作,为大家介绍一下如何进行JSONObject向具体对象的转化。

  首先我们的对象类(user):

public class User {        private String id;    private String name;    private String from;        public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getFrom() {        return from;    }    public void setFrom(String from) {        this.from = from;    }        @Override    public String toString() {        return "User [id=" + id + ",name=" + name + ",from=" + from +"]";    }}

  这里我重写了对象的toString方法,这里一定要注意返回参数的格式:类名+'['+参数名+'='+参数+.....+']'

  下面就是我们的对象创建与解析了:

  1、JSONObject对象解析类:

//JSONObject解析类public class JsonParseToObject {    public Object AllJsonParseToObject(String json, String packageAddress) {        Object parseObject = null;        try {            parseObject = JSON.parseObject(json, Class.forName(packageAddress));        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        return parseObject;    }    }

  2、JSON对象的创建与解析:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView text = (TextView) findViewById(R.id.hw);                //将我们的对象属性封装都JSONObject中        JSONObject jo = new JSONObject();        jo.put("id", "16");        jo.put("name", "小了");        jo.put("from", "河南");        String str = jo.toString();        Toast.makeText(this, str, Toast.LENGTH_LONG).show();                //对JSONObject对象进行解析        User u = (User) new JsonParseToObject().AllJsonParseToObject(jo.toString(), "com.example.jsontoobject.User");                //判断JSONObject对象解析是否正确        if(u != null){            text.setText(jo.toString()+"\nid:"+u.getId()+";name:"+u.getName()+";from:"+u.getFrom());//进行对象操作        }else{            text.setText("User == null");        }    }}

  布局文件很简单就是一个文本框,用来显示解析后的数据。

  

  好了到这里我们关于JSONObject解析的知识就为大家介绍完毕,没用过这种方式的小伙伴可以尝试一下,还是挺方便的,如果你有更好的方式,还望交流学习。

转载地址:http://dgsmx.baihongyu.com/

你可能感兴趣的文章
正则与sed,grep,awk三剑客
查看>>
诊断一句SQL不走索引的原因
查看>>
iOS开发拓展篇—UIDynamic(简单介绍)
查看>>
Linux pipe函数
查看>>
图片标注工具LabelImg使用教程
查看>>
(原創) 如何設計一個數位相框? (SOC) (Quartus II) (SOPC Builder) (Nios II) (TRDB-LTM) (DE2-70)...
查看>>
/etc/profile文件内容
查看>>
量词 匹配优先与忽略优先
查看>>
一页纸IT项目管理:大道至简的实用管理沟通工具
查看>>
汽车知识:车内异味的清除方法
查看>>
IE6 7下绝对定位引发浮动元素神秘消失
查看>>
浏览器的回流和重绘及其优化方式
查看>>
Eclipse基金会发布Eclipse Photon IDE
查看>>
JavaScript 设计模式
查看>>
Java EE供应商和伦敦Java用户组宣布新的MicroProfile
查看>>
PostgreSQL中的大容量空间探索时间序列数据存储
查看>>
敏捷制造:并不是你想像的矛盾体
查看>>
jQuery选择器和事件
查看>>
十、syslog日志与loganalyzer日志管理
查看>>
Python多进程并发写入PostgreSQL数据表
查看>>