一、JSON的定义          JSON是 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为 二、JSON 与XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便 5.JSON对数据的描述性比XML较差 6.JSON的速度要远远快于XML 关于json的更多内容请访问的官网 http://www.json.org/ 三、android2.3提供的json解析类  android的json解析部分都在包org.json下,主要有以下几个类:  JSONObject可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。它对外部(External:   应用 toString() 方法输出的数值)调用的响应体现为一个 标准的字符串 (例如:{"JSON": "Hello, World"},最外被大括号包裹,其中的Key和Value被冒号":"分隔)。其对于内部(Internal)行为的操作格式略微,例如:初始化一个JSONObject实例,引用内部的put()方法添加数值:new JSONObject().put("JSON", "Hello, World!"),在Key和Value之间是以逗号","分隔。Value的类型包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object 。 JSONStringerjson文本构建类 ,根据官方的解释,这个类可以帮助快速和便捷的创建JSON text。其最大的优点在于可以减少由于 格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。 JSONArray 它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:     [value1,value2,value3],大家可以亲自利用简短的代码更加直观的了解其格式)。这个类的内部同样具有查询行为,     get()和opt()两种方法都可以通过index索引返回指定的数值,put()方法用来添加或者替换数值。同样这个类的value类型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。 JSONTokener:json解析类  JSONException:json中用到的异常  四、使用JSONObject与JSONArray来构建json文本 实例1
    

void startBuildJsonTextDemo ()     {         /*                         假设现在要创建这样一个json文本            { "phone" : ["12345678", "87654321","02887188812"],            "name" : "yuanzhifei89",            "age"  : 100,  "address" : { "country" :           "china", "province" : "jiangsu" },            "married" : false }          */         try         {             /* 首先最外层是{},是创建一个对象*/             JSONObject person = new JSONObject ();             /* 第一个键phone的值是数组,所以需要创建数组对象*/             JSONArray phone = new JSONArray ();             phone . put ( "12345678" ). put ( "87654321" );             phone . put ( "02887188812" );             person . put ( "phone" , phone );             person . put ( "name" , "yuanzhifei89" );             person . put ( "age" , 100 );             /* 键address的值是对象,所以又要创建一个对象*/             JSONObject address = new JSONObject ();             address . put ( "country" , "china" );             address . put ( "province" , "jiangsu" );             person . put ( "address" , address );             person . put ( "married" , false );             Log . i ( tag , person . toString ());         } catch ( JSONException ex )         {             /*键为null或使用json不支持的数字格式(NaN, infinities)*/             throw new RuntimeException ( ex );         }     }

运行结果 03-28 21:32:51.095: I/robin(9617):  {"phone":["12345678","87654321","02887188812"],"married":false,"address":{"province":"jiangsu","country":"china"},"age":100,"name":"yuanzhifei89"} 五、使用JSONStringer来构建json文本 除了JSONObject与JSONArray两个类,还可以使用JSONStringer来构建json文本   实例2
    

  void startBuildJsonTextDemo2 (){         try {               JSONStringer jsonText = new JSONStringer ();               /* 首先是{,对象开始。object和endObject必须配对使用  */             jsonText . object ();                              jsonText . key ( "phone" );               /* 键phone的值是数组。array和endArray必须配对使用 */               jsonText . array ();               jsonText . value ( "12345678" ). value ( "87654321" );               jsonText . value ( "02887188812" );             jsonText . endArray ();                              jsonText . key ( "name" );               jsonText . value ( "yuanzhifei89" );               jsonText . key ( "age" );               jsonText . value ( 100 );                              jsonText . key ( "address" );               /* 键address的值是对象  */             jsonText . object ();               jsonText . key ( "country" );               jsonText . value ( "china" );               jsonText . key ( "province" );               jsonText . value ( "jiangsu" );               jsonText . endObject ();                              jsonText . key ( "married" );               jsonText . value ( false );                              /* },对象结束  */             jsonText . endObject ();   Log . i ( tag , jsonText . toString ());         } catch ( JSONException ex ) {               throw new RuntimeException ( ex );           }       }

运行结果 03-28 21:41:50.221: I/robin(10153):  {"phone":["12345678","87654321","02887188812"],"name":"yuanzhifei89","age":100,"address":{"country":"china","province":"jiangsu"},"married":false} 接下文

更多相关文章

  1. 【Android每日一讲】2012.11.28 快速地搜索手机文件引擎 - Java
  2. Android示例 JobService分析
  3. Android(安卓)String.xml Html格式化方法
  4. Android(安卓)Studio中http请求方式
  5. Android(安卓)浅析 SharedPreferences (一) 使用
  6. Android(安卓)自定义Adapter
  7. ”Android(安卓)Application Framework FAQ“关于Android框架的
  8. android 按钮点击事件
  9. Android之ListView优化

随机推荐

  1. Android中的sqlite简单示例
  2. android中的heap是修改
  3. android app 开启自动启动
  4. 什么是Android-Android中文SDK
  5. Android(安卓)Fresco属性大全,中文说明
  6. Android·性能分析systrace报错
  7. Android(安卓)不依赖activity的全局悬浮
  8. 修改android桌面图标默认大小
  9. android 笔记 --- Android(安卓)Bitmap
  10. android 整合 maven 环境