什么是JSON

1.JSON(JavaScript Object Notation):是一种基于JavaScript语言的轻量级的数据交换格式

2.JSON数据是一系列键值对的集合

3.JSON已经被大多数开发人员接受,在网络数据的传输当中应用非常广泛

4.JSON相对于XML来讲解析稍微方便一些

JSON数据格式的特点 JSON VS XML

为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

相比 XML 的不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

从上到下的符号解说

[{"name":"zhangsan","age":20},{"name":"lisi","age":30}]

1.[是开始解析数组

2. {开始解析对象

3."name":"zhangsan"解析解析键值对

4."age":20解析解析键值对

5. }解析对象结束

6. {开始解析对象

7."name":"lisi" 解析键值对

8."age":30 解析键值对

9. }解析对象结束

10. ] 解析数组结束

输出结果:

上面是输出结果,下面是具体代码实现:

这段代码讲解如何用的 JsonReader 
 1 public class JsonUtils{ 2     public void parseJson(String jsonData){ 3         try{ 4             //如果需要解析JSON数据,首先要生成一个JsonReader对象 5             JsonReader reader = new JsonReader(new StringReader(jsonData)); 6             reader.beginArray();    //开始解析数组 7             while(reader.hasNext()){    //hasNext就是 有没有下一组 键值对 8                 String tagName = reader.nextName();        //reader.nextName()  得到下一个键值对的Name 9                 if(tagName.equals("name")){      10                     System.out.println("name--->" + reader.nextString());11                 }12                 else if(tagName.equals("age")){        //age是 数字,不用加引号13                     System.out.println("age--->" + reader.nextInt());   //nextInt 得到下一个 键值对的 整形数字  14                 }15                 16             } 17             reader.endObject();18         }19         reader.endArray();20     }21     catch(Exception e){22         e.printStackTrace();    23    }24 }25 }

public class MainActivity extends Activity{    //  \" 转义字符    private string jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";    private Button button;    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        button = (Button)findViewById(R.id.buttonId);        button.setOnClickListener(new ButtonListener());    }    private class ButtonListener implements OnClickListener{            public void onClick(View v){            JsonUtils jsonUtils = new JsonUtils();            jsonUtils.parseJson(jsonData);                }    }}

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. [Android] Dagger2 入门 2
  3. Android中widget的应用【安卓源码解析三】
  4. android定制化显示toast
  5. Android(安卓)ApiDemos示例解析(1):创建ApiDemo示例
  6. Android(安卓)的 Application 初始化
  7. Android中的内部类引起的内存泄露
  8. Activity中的onSaveInstanceState()解析
  9. Android(安卓)Notes 之 自定义View(1) 之 自定义属性

随机推荐

  1. Create Hello Android
  2. android NDK install and config in ubun
  3. 使用命令行创建Android模拟器
  4. Android人脸识别技术
  5. android anr导出崩溃文件
  6. Android硬件访问服务-Service
  7. Android中横竖屏、全屏、无标题设置
  8. 2010.11.27———android 展示网络上的图
  9. Android中的集中常用布局方式和按钮事件
  10. LayoutAnimation