JSON笔记

1. JSON概述

  1.   JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  2.   JSON 是轻量级的文本数据交换格式
  3.   JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  4.   JSON 具有自我描述性,更易理解

2. JSON语法

JSON 语法是 JavaScript 语法的子集。

2.1 JSON语法规则

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

  1.   数据在名称/值对中
  2.   数据由逗号分隔
  3.   大括号保存对象
  4.   中括号保存数组

2.2 JSON 的键值对

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

“key” :value

value可以是(javascript中数据类型):

2.2.1数字(整数或浮点数)

{ "age" : 30 }

2.2.2  字符串(在双引号中) 

{ "age" : “30” }

2.2.3 逻辑值(true 或 false) 

{ "age" : true/false }

 2.2.4 数组(在中括号中)

{ "sites" : [

        { "key1" : value , "key2" : value },

        { "key3" : value , "key4" : value },

        { "key5" : value , "key6" : value }

       ]
}

  2.2.5 对象(在大括号中) 

{ "key" : value , "key" : value }

  2.2.6 null 

{ "key":null }

3. javascript中的JSON

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

3.1用JSON格式创建对象

var student={ "name" : "大熊" , "age" : 15 };

3.2用JSON格式创建对象数组

var stuArray=[{ "name" : "大熊1" , "age" : 14 },
{ "name" : "大熊2" , "age" : 16 },
{ "name" : "大熊3" , "age" : 15 }
];

3.3对象/数组与JSON格式的字符串之间的转换

  对象->字符串

console.log(JSON.stringify(student));


  字符串->对象 

1 var str="{ "name" : "大熊" , "age" : 15 }";
2 console.log(JSON.parse(str));

4. java中的JSON

java中有很多第三方库支持JSON,如阿里的fastjson,谷歌gson等。

下面以fastjson为例,

第一步:下载jar包

地址:https://github.com/alibaba/fastjson/releases

第二步:把jar包复制到工程目录中,并build path

第三部使用:

 1 import com.alibaba.fastjson.JSON;
 2 
 3  
 4 
 5 public class test1 {
 6 
 7        public static void main(String args[]) {
 8 
 9               Student student=new Student("张三",18,2011);
10 
11               //对象->json字符串
12 
13               String stuSTr=JSON.toJSONString(student);
14 
15               System.out.println(stuSTr);
16 
17               //json字符串->对象
18 
19               String str="{ "age" : "18" , "id" : "2011" , "name" : "张三" }";
20 
21               Object stu=JSON.parseObject(str);
22 
23               System.out.println(stu);
24 
25        }
26 
27 }
原文地址:https://www.cnblogs.com/ironHead-cjj/p/11329850.html