美文网首页
Android 解析 Json(Java Script Obje

Android 解析 Json(Java Script Obje

作者: 凯撒网络研究院 | 来源:发表于2017-03-29 11:35 被阅读0次

一、 Json两种结构:

1.名称/值的集合 被理解为对象(object)

数据格式:

  • 每一个对象以“{”(左括号)开始,“}”(右括号)结束
  • 每个名称后跟一个“:”名称/值 对之间使用“,” 隔开 如:
    {
    "name":"domain",
    "age":19
    }

2.值的有序列表 被理解为数组(array)

数据格式

  • 以 “[” 开始 ,“]” 结束 值之间用“,” 隔开 如:
    {
    "students":
    [
    {"name":"domain","age":15},
    {"name":"jack","age":16}
    ]
    }

二、android解析json 数据

1.使用JsonObject 解析

  • 首先写一个json数据,这边直接用字符串的形式写好,写了一个头 person 。正常来说数据是从服务器读取过来的json数据,关于android的网络通信 以后会在写,这边主要写json数据的解析
    String jsoncontent ="{\"person\":{\"address\":\"ganzhou\",\"id\":101,\"name\":\"domain\"}}";

  • 写了一个方法传入 json数据的 头 和json数据 然后用JsonObject 进行解析

 public void getjson(String key,String jsoncont){

        try {
              //新建jsonobject 对象 把json格式的字符串 传进来
            JSONObject jsonObject =new JSONObject(jsoncont);
              //把除了头之外的内容读取出来 存为新的jsonobject 对象
            JSONObject personjsonObject=jsonObject.getJSONObject(key);
              //把数据中的id读取出来 赋值 给id
            id=personjsonObject.getInt("id");
              //把数据中的name读取出来 赋值 给name
            name=personjsonObject.getString("name");
              //把数据中的address读取出来 赋值 给address
            address=personjsonObject.getString("address");
             //打印输出 。(没有问题)
            System.out.println(id+name+address);

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

2.使用Gson 进行解析

  • 介绍

1.可以把java对象转化成json,也可以把json字符串转化成一个相等的java对象
2.支持任意复杂包括没有源代码的对象

  • 创建一个json格式的字符串数据

转义之后

  String jsoncontent1="{\n" +
            "\t\"animals\":{\n" +
            "\t\"dog\":[\n" +
            "\t\t{\"name\":\"Rufus\",\"breed\":\"labrador\",\"count\":1,\"twoFeet\":false},\n" +
            "\t\t{\"name\":\"Marty\",\"breed\":\"whippet\",\"count\":1,\"twoFeet\":false}\n" +
            "\t],\n" +
            "\t\"cat\":{\"name\":\"Matilda\"}\n" +
            "}\n" +
            "}";

转义之前

{
    "animals":{
    "dog":[
        {"name":"Rufus","breed":"labrador","count":1,"twoFeet":false},
        {"name":"Marty","breed":"whippet","count":1,"twoFeet":false}
    ],
    "cat":{"name":"Matilda"}
}
}
  • 完成gson库的依赖在app中的build.gradle 的dependencies 加入
    compile 'com.google.code.gson:gson:2.6.2'
    
  • 创建javaBean 类,在之后gson的解析方法中要用到。可以通过在线json生成javaBean类工具
生成的类
  • 接下来就可以用Gson进行json数据的解析了
        //实例化root类,root类中实例化了其他三个类,所以这边只需要实例化root类
        Root root=new Root();
        //实例化Gson 
        Gson gson=new Gson();
        //调用gson的form.Json 进行解析,只需要传入json格式的数据和你所生成的javaBean类的定义
        root=gson.fromJson(jsonstr,Root.class);
  • 测试是否解析成功
        System.out.println("----解析后的数据--->");
        System.out.println("取出dom name");
        for (int i = 0;i<animals.dog.size();i++){
//            for(int j = 0; j<animals.dog.get(i).value.length;j++)
//            {
//                System.out.println(web.get(i).value[j]);
//            }
            System.out.println(animals.dog.get(i).name);

        }
        System.out.println("取出dog 的breed");
        for (int i = 0; i <animals.dog.size() ; i++) {
            System.out.println(animals.dog.get(i).breed);
        }
        System.out.println("取出猫名:");
        System.out.println(animals.cat.getName());

运行结果

运行结果

相关文章

  • Android 解析 Json(Java Script Obje

    一、 Json两种结构: 1.名称/值的集合 被理解为对象(object) 数据格式: 每一个对象以“{”(左括号...

  • bom报头错误

    android解析json出错:JSONException: Value of type java.lang.St...

  • @SerializedName注解

    在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。G...

  • Android中Gson解析json数据使用@Serialize

    笔记 在Android中使用Gson来解析json数据十分方便,可以直接将json数据解析成java对象或者集合。...

  • 重识java ——泛型基础

    做过 java/Android 的童鞋都知道,不管我们后台写 json 接口返回,还是移动端解析 json 接口,...

  • 三、解析Json数据

    一、Android原生技术解析Json数据 1.1 将json格式的字符串{}转换为Java对象 1.1.1 AP...

  • 无聊小常识

    1、map格式字符串如何解析? 借助json,先将字符串转化为json格式,再取值 JSONObject obje...

  • 2019-08-27 iOS数据解析

    iOS常用的数据解析格式有两种:json,xml 这两种数据形式;一. json 即JavaScript Obje...

  • json模块

    JSON(Java Script Object Notation):一种轻量级数据交互格式。python的json...

  • Gson,不规范json的反序列化

      Gson是Java或Android开发中常用的一个json解析库,尤其是在Android下基本上是必备的。但是...

网友评论

      本文标题:Android 解析 Json(Java Script Obje

      本文链接:https://www.haomeiwen.com/subject/lssrottx.html