欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

什么是 JSON?

程序员文章站 2024-01-30 16:26:34
...

什么是 JSON?

JSON: JavaScript Object Notation(JavaScript 对象表达式)

JSON 是存储和交换文本信息的语法。 类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 是轻量级的文本数据交换格式

JSON 独立于语言:JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。 JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET) 编程语言都支持JSON。

JSON 具有自我描述性,更易理解

与 XML 的区别

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有“自我描述性” (人类可读)
  • JSON 具有层级结构 (值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用

使用XML

  • 读取 XML 文件
  • 使用 XML DOM 来循环遍历文档
  • 读取值并存储在变量中

使用JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串
  • JSON.parse()、JSON.stringify() 格式互换

JSON 语法

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中

数据由逗号分隔

大括号保存对象

中括号保存数组

JSON 值

JSON 值可以是:

数字(整数或浮点数)

字符串(在双引号中)

逻辑值(true/false)

数组(在中括号中)

对象(在大括号中)

null

JSON 方法

JSON.parse()

JSON 通常用于与服务端交换数据。

在接收服务器数据时一般是字符串。

我们可以使用JSON.parse() 方法将数据转换为 JavaScript 对象。

语法

JSON.parse(str,callback);

第二个参数可选,将为对象的每个成员调用此函数。

JSON数据解析

JSON解析一定要掌握的两条规则:

1.如果看到是{ }–>使用JSONObject
2.如果看到的[ ]–>使用JSONArray解析
掌握了JSON的数据类型和基本语法后,下面我们将对JSON的各种语法类型进行详细解析(注意掌握两条规则的使用,掌握了JSON解析就那么回事)

纯对象(Object)的解析{ }:

import org.json.JSONException;
import org.json.JSONObject;

public class Json01 {
public static void main(String[] args) {
//      编辑一个我们要解析的数据对象
//     根据JSON的官方定义,键,加"",值,如果是字符串,就加"",其他不加。
   String json="{'name':'汐','age':24}";


try {


//          创建JSON解析对象(两条规则的体现:大括号用JSONObject,注意传入数据对象)
       JSONObject obj = new JSONObject(json);
//          obj.后面有各种数据类型,根据对象来选择使用的数据类型
      String name = obj.getString("name");
//          同理如上,这里的age为Int类型,我们就用对应的类型进行解析
     int age = obj.getInt("age");
//          最后输出到控制台
     System.out.println(name+"<--->"+age);


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


}
}


应用实例

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
    if(this.readyState == 4 && this.status == 200){
        myArr = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myArr[1];
        
    }
};
xmlhttp.open("GET","test.txt",true);
xmlhttp.send();