当前位置:   article > 正文

JSON-初识_json必须是keyvalue形式吗

json必须是keyvalue形式吗

定义:JSON(JavaScript Object Notation )是一种轻量级的数据交换格式。

JSON对象的基本要求:

  • JSON是一对大括号{}表示
  • JSON是以键值对组成的
  • JSON的键,必须包裹一对双引号
  • 多个键值对中间使用逗号分隔
  • JSON的键必须是字符串,必须包裹一对双引号

JSON的两种结构:

对象:

对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种
例子:

1.{"name":"张三","age":21}
2.{"name":"张三","age":21,"info":{"class":"三年一班","id":2016001}}
  • 1
  • 2
  • 3

数组:

数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,”javascript”,”vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种:
例子:

1.[{"name":"Mr Jiang"},{"identity":"teacher"}]

2.[ {"name":"张三","age":21,"info":{"class":"三年一班","id":2016001}}, {"name":"李四","age":22,"info":{"class":"三年二班","id":2016002}}]

3.[{"name":"pelon"},{"infor":{"class":"lenovo1602","num":{"hen":3,"zhong":3}}}]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

JSON的数据解析案例1(JSONArray);

JSON数据如下:

String Json_str3="[ {\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}, {\"name\":\"李四\",\"age\":22,\"info\":{\"class\":\"三年二班\",\"id\":2016002}}]\n";
  • 1

可将JSON数据放入https://www.json.cn/中查看:
这里写图片描述

解析过程:

private void parseJson() {

 String Json_str3="[ {\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}, {\"name\":\"李四\",\"age\":22,\"info\":{\"class\":\"三年二班\",\"id\":2016002}}]\n";

        try {
             //该JSON数据是JSONArray数组所以需要创建JsonArray对象,并将字符串传入
            JSONArray jsonArray3=new JSONArray(Json_str3);

            JSONObject jsonObject31=jsonArray3.getJSONObject(0);
            String name1=jsonObject31.getString("name");
            int age1=jsonObject31.getInt("age");

            JSONObject jsonObject311=jsonObject31.getJSONObject("info");
            String class1=jsonObject311.getString("class");
            int id1=jsonObject311.getInt("id");


            JSONObject jsonObject32=jsonArray3.getJSONObject(1);

           String name2=jsonObject32.getString("name");
           int age2=jsonObject32.getInt("age");

           JSONObject jsonObject321=jsonObject32.getJSONObject("info");
           String calss2=jsonObject321.getString("class");
           int id2=jsonObject321.getInt("id");



           t1.setText("姓名:"+name1);
           t2.setText("年龄:"+age1);
           t3.setText("班级:"+class1);
           t4.setText("id:"+id1);
           t5.setText("姓名:"+name2);
           t6.setText("年龄:"+age2);
           t7.setText("班级:"+calss2);
           t8.setText("id:"+id2);
             } catch (JSONException e) {
            e.printStackTrace();
        }


    }


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

运行截图:
这里写图片描述

JSON的数据解析案例2(JSONObject):
解析的数据对象:

String json_str=" {\"name\":\"张三\",\"age\":21}";
  • 1

同样的,将JSON数据放入https://www.json.cn/中查看:

这里写图片描述

过程:

 private void parseJson() {

        String json_str=" {\"name\":\"张三\",\"age\":21}";
        try {
        //创建JSONObject对象
            JSONObject jsonObject=new JSONObject(json_str);
            String name=jsonObject.getString("name");
            int age=jsonObject.getInt("age");

          t1.setText("姓名:"+name);
          t2.setText("年龄:"+age);
        } catch (JSONException e) {
            e.printStackTrace();
        }


    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

结果:
这里写图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/710473
推荐阅读
相关标签
  

闽ICP备14008679号