JSON及其在项目中的使用

JSON

一、简介

  • 全称:JavaScript Ojbect Notation,JavaScript对象标记

  • 功能:轻量级数据交换语言

  • 语法严格

  • 两种建立JS对象的方式

    //方式一:通过function
    function Person(xid,xname,xsal){
    this.id=xid;
    this.name=name;
    this.sal=xsal;
    }
    var p = new person(1,"张三",9500);
    //方式二:通过字面量,后面那一串字符串就是所谓的json
    var p={id:1,name:"张三",sal=9500};

二、语法

  • {} 对象
  • [] 数组
  • , 分隔属性
  • : 左边为属性名,右边为属性值
    属性名可用可不用引号括起,属性值为字符串一定要用引号括起

三、结构

JSON建构于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

四、使用

1. 说明

需要json-lib-2.1-jdk15.jar,但是Android SDK中内置了JSON解析器(不同于这个jar包,Android中的比较精简),所以不用导入。

2. Java项目中使用

需要导入以下jar包

这里写图片描述

//将整个对象转为json数组
JSONArry ja = JSONArray.fromObject(Object);
//只将对象中的某些属性转成JSON对象
jsonConfig.setExcludes(String[] );//不参与转成JSON文本属性
JSONObject ja = JSONObject.fromObject(Object,jsonConfig);

3. Android项目中使用

3.1 JSONObject
  1. 本质:是一个LinkedHashMap<String, Object>

  2. 构造方法

    /**
    * 功能:构造方法,从json字符串中创建键值映射(JSON对象)
    * 参数json:json字符串
    * 返回值:JSONObject
    */
    public JSONObject(String json) throws JSONException {
    this(new JSONTokener(json));
    }
  3. 获取和设置方法

    //返回对应name的值,如果没有就返回null
    Object opt(String name)
    //更精准的获取方法
    JSONObject optJSONObject(String name)
    JSONArray optJSONArray(String name)
    ...
    //返回对应name的值,如果没有就抛出异常
    Object get(String name)
    //更精准的获取方法
    getJSONObject(String name)
    getJSONArray(String name)
    ...
    //构建name和value的映射,如果已存在就覆盖,如果value为null就移除
    JSONObject put(String name, Object value)
3.2 JSONArray
  1. 本质:是一个ArrayList<Object>

  2. 构造方法

    /**
    * 功能:构造方法,从json字符串中创建json数组
    * 参数json:json字符串
    * 返回值:JSONOArray
    */
    public JSONArray(String json) throws JSONException {
    this(new JSONTokener(json));
    }
  3. 获取和设置方法

    //返回对应index的值,如果没有就返回null
    Object opt(int index)
    //更精准的获取方法
    JSONArray optJSONArray(int index)
    JSONObject optJSONObject(int index)
    ...
    //返回对应index的值,如果没有就抛出异常
    Object get(int index)
    //更精准的获取方法
    getJSONObject(int index)
    getJSONArray(int index)
    ...
    //往指定索引添加值,如果已存在就覆盖
    JSONArray put(int index, Object value)

五、XML与JSON

  • XML:常用于配置文件,结构清晰,易读
  • JSON:常用于传输数据,传输量小
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值