JSON及其在项目中的使用

来源:互联网 发布:网络交友论坛 编辑:程序博客网 时间:2024/05/20 22:04

JSON

一、简介

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

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

  • 语法严格

  • 两种建立JS对象的方式

    //方式一:通过functionfunction Person(xid,xname,xsal){this.id=xid;this.name=name;this.sal=xsal;}var p = new person(1,"张三",9500);//方式二:通过字面量,后面那一串字符串就是所谓的jsonvar 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的值,如果没有就返回nullObject 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的值,如果没有就返回nullObject 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