先介绍一下Android原生的解析

在Android中包含四个与JSON相关的类和一个Exceptions:

JSONObject   
JSONArray            
JSONStringer
JSONTokener
JSONException


1,JSONObject  

{“JSON”: “Hello, World”},key和velue用:分隔。

初始化一个JSONObject实例,引用内部的put()方法添加数值:new JSONObject().put(“JSON”, “Hello, World!”),在Key和Value之间是以逗号”,”分隔。
Value的类型包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。
有两个不同的取值方法:
get(): 在确定数值存在的条件下使用,否则当无法检索到相关Key时,将会抛出一个Exception信息。
opt(): 这个方法相对比较灵活,当无法获取所指定数值时,将会返回一个默认数值,并不会抛出异常。

2,JSONArray    
获取jsonarray,并把jsonarray转化为jsonobject
//将此json数据变成一个对象。JSONObject jsonObject = new JSONObject(String);//然后获得list里面的数据JSONArray jsonArray = jsonObject.getJSONArray("list");//当不知道key时,使用循环for(int i=0;i)    {        JSONObject jsonOb = (JSONObject)jsonArray.opt(i);        int tel = jsonOb.getInt("tel");    }

3,JSONStringer:

根据官方的解释,这个类可以帮助快速和便捷的创建JSONtext。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntaxrules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。

String myString = new JSONStringer().object().key("name").value("小猪").endObject().toString();  //结果是一组标准格式的JSON text:{"name" : "小猪"}

其中的.object()和.endObject()必须同时使用,是为了按照Object标准给数值添加边界。同样,针对数组也有一组标准的方法来生成边界.array()和.endArray()。

4,JSONTokener:
这个是系统为JSONObject和JSONArray构造器解析JSON source string的类,它可以从source string中提取数值信息。

5,JSONException:

是JSON.org类抛出的异常信息。


自从使用了gson,一切都变得简单了

Gson有两个重要的方法,一个是toJson,一个是fromJson,也就是序列化和反序列化。

比如解析下面这个gson串:

{"name" : "Ravi Tamada", "email" : "ravi8x@gmail.com","phone" : {"home" : "08947 000000","mobile" : "9999999999"}}
先写一个User
public class User {
private String name;
private String email;
private Phone phone;}
再写一个Phone
    
public class Phone {
private String home;
private String mobile;}
接下来一切都简单了
    
Gson gson = new Gson();
User user = gson.fromJson(response.toString(), User.class);
mTextViewVolley.setText(user.getName()+"\n"+user.getEmail()+"\n"+"phone:"+user.getPhone().getHome());

更多相关文章

  1. Android虚拟键盘弹出时挡住EditText解决方法
  2. Android(安卓)毛玻璃效果的实现
  3. 详解 Android(安卓)的 Activity 组件 -
  4. 查看Android内存的8中方法
  5. Android中Activity全局共享方法AppContext
  6. 《Android面试宝典》学习笔记(第四章:对话框、信息提示和菜单)
  7. Android学习笔记―第十一章 Fragment
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. android 数字证书具体应用机制
  2. android插件汇总
  3. 【Android】使用LiveData KTX Builder让
  4. Android(安卓)Studio 一起走过的那些坑
  5. APIDEMO PREFERENCE 学习 ACTIVTIY
  6. Android下模拟按键输入
  7. 1. 0 Android(安卓)开发中的界面编程
  8. Android 获取存储卡路径和空间使用情况
  9. Android打开/关闭数据流量
  10. 实习杂记(27):android中关于横竖屏切换的那