Android关于JSON解析
来源:互联网 发布:mac日历广告如何禁止 编辑:程序博客网 时间:2024/06/07 05:29
JSON是一种轻量级的数据交换格式,是基于JavaScript的一个子集。
Json有四个基本类一个异常
基本类:JSONObject、JSONArray、JSONStringer、 JSONTokener
异常:JSONException
基础结构:对象(JsonObject)与数组(JsonArray)对象:即用{}括起来的内容。数据结构为{key:value,key:value...}的键值对的结构。数组:即用[]括起来的内容。数据结构为["java","c","c++"...]
JSON相关练习
1、JSONObject, JSONArray来构建json文本
假设现在要创建这样一个json文本 { "phone" : ["12345678", "87654321"], // 数组 "name" : "yuanzhifei89", // 字符串 "age" : 100, // 数值 "address" : { "country" : "china", "province" : "jiangsu" }, // 对象 "married" : false // 布尔值 } /**解答*/JsonObject Person = new JsonObject();//电话号码是一个数组[],所以创建一个JsonArray JsonArray phone = new JsonArray();phone.put("12345678").put("87654321");person.put("phone",phone);person.put("name","yuanzhifei89");person.put(100);//地址是一个对象{},即创建一个JsonObjectJsonObject address = new JsonObject();address.put("country","china").put("province","jiangsu" );person.put("address",adress);person.put("married",flase);
2、
String jsonString ={"url":"http://www.cnblogs.com/qianxudetianxia"};/**解答*/JsonObject object = new JsonObject(jsonString);String url = object.getString("url");
3、
String jsonString ={"name":"android"," version":"Beta1.0"};/**解答*/JsonObject object = new JsonObject(jsonString);JsonString name = object.getString("name");JsonString version = object.getString("version ");
4、
String jsonString ={"number":[1,2,3]};/**解答*/JsonObject object = new JsonObject(jsonString);JsonArray array = object.getJsonArray("number");for(int i = 0; i < array.length();i++){ //因为array里面的数据是int型 System.println(array.getInt(i));}
5、
String jsonString ={"number":[[1],[2],[3]]};/**解答*/JsonObject object = new JsonObject(jsonString);JsonArray array = object.getJsonArray("number");for(int i = 0; i < array.length();i++){ //获取数组中的数组 System.println(array.getJsonArray(i).getInt(0));}
6、
String jsonString ={"mobile":[{"name":"android"},{"name":"iphone"}]};/**解答*/JsonObject object = new JsonObject(jsonString);JsonArray array = object.getJsonArray("mobile");for(int i = 0; i < array.length();i++){ //此处是获取两个对象中的值System.println(array.getJsonObject(i).getString("name"));}
上面的例子,使用getType在碰到查找不到节点的时候,会抛出异常。
如果使用optType,找不到节点,则返回null或者默认值。
//无url节点,抛出异常
String url = demoJson.getString(“url”);
//无url节点,返回空,如果为基本类型,则返回默认值
String url = demoJson.optString(“url”);
<1>.JSON的优点:
A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
<2>.JSON的缺点
A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
B.JSON格式目前在Web Service中推广还属于初级阶段。
最后Json解析 PK xml解析
(1).可读性方面。
JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
(2).可扩展性方面。
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
(3).编码难度方面。
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
(4).解码难度方面。
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
(5).流行度方面。
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面。
JSON和XML同样拥有丰富的解析手段。
(7).数据体积方面。
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(8).数据交互方面。
JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(9).数据描述方面。
JSON对数据的描述性比XML较差。
(10).传输速度方面。
JSON的速度要远远快于XML。
- Android 关于JSON解析
- Android关于JSON解析
- 【json】android json解析
- 关于json的解析
- 关于json字符串解析
- 关于解析JSON
- 关于json解析
- 关于json数据解析
- 关于json解析
- 关于json解析
- 关于Json不规则解析
- 关于json的解析
- 关于JSONObject解析json
- 关于Android解析json数据的一些处理代码
- JAVA FOR Android 关于JSON字符串的解析
- android-关于Gson和json的解析转化使用
- Android-Android解析JSON
- Android数据解析:Json解析
- 白盒测试.
- Scrum
- 安卓的生命周期(初学)
- jaxp解析器 使用DOM对象来解析XML
- 第104讲:通过案例解析Akka中的Actor的不同类型的Constructor学习笔记
- Android关于JSON解析
- 接口与抽象类的区别
- Openstack网络之Vlan网络模式
- java.lang.RuntimeException: Parcel: unable to marshal value com.zhym.friendcircule.Photo@41fcd5c8
- 菜鸟的安卓实习之路----软键盘弹出布局不适不完全指南
- csdn能不能行啊,传个资源我都登陆过了,还是重复让登陆
- 2015.9.17 initWithName构造函数补充
- HDU 3507 Print Article(斜率优化DP)
- 美团面试失败总结