Android JSON基础

Posted 彬sir哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android JSON基础相关的知识,希望对你有一定的参考价值。

一.JSON基础知识

1.几个例子
   1.例子:Array里面包含对象(object)

[
    {
        "id":1,
        "name":"小猪",
        "age":22
    },
    {
        "id":2,
        "name":"小猫",
        "age":23
    }
]

      Array里面的对象数据是有序的

   2.例子:对象(object)中可以包含Array
      一个对象包含1个数组,2个子对象

{
    "root":[
        {
            "id":"001",
            "name":"小猪"
        },
        {
            "id":"002",
            "name":"小猫"
        },
        {
            "id":"003",
            "name":"小狗"
        }
    ],
    "total":3,
    "success":true
}

其中这里的root对应的值是数组数据,total对应的值是一个int类型数据,success对应的是一个布尔类型数据;其中root对应的值里面还有很多数据

   3.例子:以对象嵌套子对象,子对象再嵌套数据

{
    "calendar":{
        "calendarlist":[
            {
                "id":"001",
                "name":"小猪"
            },
            {
                "id":"002",
                "name":"小猫"
            }
        ]
    }
}

这里的数据最外层只有一个键值对:calendar对应对象value1,value1里面也是只有一个键值对:calendarlist对应数组数据ArrayValue,ArrayValue里面又两个有序对象,这两个有对象里面都有两个无序的数据

二.JSON解析数据的一个简单示例演示

1.比如从网络中获取到下面的一段字符串,需要去解析到每一个动物的姓名和它的图片URL网址

{
    "root":[
        {
            "id":"001",
            "name":"小猪",
            "img":"StringURL1"
        },
        {
            "id":"002",
            "name":"小猫",
            "img":"StringURL2"
        },
        {
            "id":"003",
            "name":"小狗",
            "img":"StringURL3"
        }
    ],
    "total":3,
    "success":true
}

2.解析过程的语句

创建两个数组用来存储数据
String[] names=new String[3];
String[] imgURLs=new String[3]; 
//数据的获取过程
JSONObject jsonObject = new JSONObject(s)
JSONArray array =jsonObject.optJSONArray("root");//获得json数组,数组里面有三个对象
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.optJSONObject(i);//数组数据是根据游标值获取
names[i]=obj.optString(“name”);//获取名字
imgURLs[i]=obj.optString(“img”);//获取图片的URL
}

以上是关于Android JSON基础的主要内容,如果未能解决你的问题,请参考以下文章

Android 从片段中检索 Json 并在另一个活动中使用

如何将本地存储中的 JSON 对象添加到 Android Studio 上的片段列表

如何从片段中的 JSON 响应中的对象获取数据

解析:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

logcat错误android studio编程片段

使用凌空json数据的片段中的Recyclerview?