<!-- @page { margin: 2cm } PRE.cjk { font-family: "Droid Sans Fallback", monospace } PRE.ctl { font-family: "Lohit Hindi", monospace } P { margin-bottom: 0.21cm } CODE.cjk { font-family: "Droid Sans Fallback", monospace } CODE.ctl { font-family: "Lohit Hindi", monospace } A:link { so-language: zxx } -->

org.json 包中含有类JSONArray/JSONObject/JSONStringer/JSONTokener/JSONException 五个类

  1. .JSONArray 一个值序列的集合

  2. JSONObject 一个可变值的键值对

  3. JSONStringer 重写里toString 方法

  4. JSONTokener 解析json 编码的字符串为对应的对象

  5. JSONException JSON 中的异常

JSONTokener 中常用的方法是:构造函数和nextValue()

ex:

String json = "{"         + " \"query\": \"Pizza\", "         + " \"locations\": [ 94043, 90210 ] "         + "}"; JSONObject object = (JSONObject) new JSONTokener(json).nextValue(); String query = object.getString("query"); JSONArray locations = object.getJSONArray("locations");public JSONTokener (S tring  in)       构造函数,参数injson格式的字符才,如果参数为空则会抛出NullPointerExceptions 异常public Object nextValue ()        获得构造函数中参数的下一个字符,该方法根据这个字符决定返回一个对象和是一个数组等等,源码如下:

public Object nextValue() throws JSONException {

int c = nextCleanInternal();

switch (c) {

case -1:

throw syntaxError( "End of input" );

case '{' :

return readObject();

case '[' :

return readArray();

case '\'' :

case '"' :

return nextString(( char ) c);

default :

pos --;

return readLiteral();

}

}

JSONObject

一个可变的键值对集合,键是唯一的/ 不能为空的字符串。值可以是多种类型,如:JSONObject/ JSONArray / String /Booleans / Integers /Longs / Doubles 或者 NULL 。值不能是除此之外的其他类型。

当被请求的时该类可以将类型转换成其他的类型。

1. 当被请求的类型是boolean ,字符串可以强制转换成“true” 或者”false”

String s = "false" ;

Boolean B = new Boolean(s);

查看 Boolean 类的源代码可以知道原理。 s 为“ true”( 不区分大小写 ) B true 否则都为 false,

2. 当请求的类型为 double 可以用 doubleValues(), 字符串用 valueOf(String) 转换。

int long 都是类似的方法

3. 当请求的类型所 String, 非空值可以通过 valueOf(Object)

String.valueOf(Object)

注意:这个类有两种表达 null 的方式,一个是 java 标准的 null, 另一个是这个类中的常量值 NULL 。特别的,

调用 put(name,null) 来删除 name 对应的值,但是调用 put(name,JSONObject.NULL) 来保存一个键值对的值为 JSONObject.NULL

JSONObject accumulate (String name, Object value)

在已经存在的 name 键中追加 value 值。

getType(name) 如果没有对应的 value ,或者 value 值不能强制转换 成请求的类型,则会抛出 JSONException 异常。

optType(name) 如果没有对应的 value, 或者 value 不能强制转换成请求的类型,则返回系统的或者用户支持默认的数据类型。

JSONArray

实现原理是通过一个 List<Objcet> 保存 values。

其他解释的链接:http://3688429.blog.51cto.com/3678429/682956

更多相关文章

  1. Android测量字符串所占UI的大小
  2. android获取资源文件R.drawable中的图片的相关方法
  3. android获取资源文件非主流方法
  4. Android权限申请:自带方法 + 第三方库实现
  5. Android 学习 之 关闭应用程序的方法
  6. 一个hello程序的android内核模块编译方法及在模拟器中进行测试结
  7. Android:Cursor类型的简单使用
  8. Android实现计时与倒计时(限时抢购)的几种方法(线程)

随机推荐

  1. OpenGL ES教程II之创建多边形(原文对照)
  2. ue4 创建Android和ios ar应用
  3. Android(安卓)Studio下载、安装和配置+SD
  4. Android中shape的使用
  5. android fragment android.support.v4.ap
  6. android 数据库操作 (非ContentProvider)
  7. android java 分享功能实现,Cocos2d-x3.3
  8. Ubuntu上adb找不到设备问题小结
  9. 关于 Android(安卓)进程保活,你所需要知道
  10. Android(安卓)Touch事件传递机制解析