`

JSON 学习笔记

 
阅读更多

JSON 学习笔记

原创编写: 王宇 
2016-11-09


 

 


JSON 是如何存储信息

  1. {
  2. "book":[
  3. {
  4. "id":"01",
  5. "language":"Java",
  6. "edition":"third",
  7. "author":"Herbert Schildt"
  8. },
  9. {
  10. "id":"07",
  11. "language":"C++",
  12. "edition":"second",
  13. "author":"E.Balagurusamy"
  14. }
  15. ]
  16. }

基本语法

  • 语法
    • Data is represented in name/value pairs. (key value模式)
    • Curly braces hold objects and each name is followed by ‘:’(colon), the name/value pairs are separated by , (comma).(key value 分号分开)
    • Square brackets hold arrays and values are separated by ,(comma). (逗号分开每个Key Value)
  • 数据结构
    • {} 集合(Collection) or 对象(Object)
    • [] 数组 (Array)

JSON 数据类型

Type Description
Number double- precision floating-point format in JavaScript
String double-quoted Unicode with backslash escaping
Boolean true or false
Array an ordered sequence of values
Value it can be a string, a number, true or false, null etc
Object an unordered collection of key:value pairs
Whitespace can be used between any pair of tokens
null empty

JSON Schema

  • Schema 
    当我们在描述 文字链接 的时候,需要约定数据的组织方式,比如,需要知道有哪些字段,这些字段的取值如何表示等,这就是 JSON Schema 的来源。
  • 用途

    1. 用于描述数据结构
    2. 用于构建人机可读的文档
    3. 用于生成模拟数据
    4. 用于校验数据,实现自动化测试
  • 关键字

Keywords Description
$schema The $schema keyword states that this schema is written according to the draft v4 specification.
title You will use this to give a title to your schema.
description A little description of the schema.
type The type keyword defines the first constraint on our JSON data: it has to be a JSON Object.
properties Defines various keys and their value types, minimum and maximum values to be used in JSON file.
required This keeps a list of required properties.
minimum This is the constraint to be put on the value and represents minimum acceptable value.
exclusiveMinimum If “exclusiveMinimum” is present and has boolean value true, the instance is valid if it is strictly greater than the value of “minimum”.
maximum This is the constraint to be put on the value and represents maximum acceptable value.
exclusiveMaximum If “exclusiveMaximum” is present and has boolean value true, the instance is valid if it is strictly lower than the value of “maximum”.
multipleOf A numeric instance is valid against “multipleOf” if the result of the division of the instance by this keyword’s value is an integer.
maxLength The length of a string instance is defined as the maximum number of its characters.
minLength The length of a string instance is defined as the minimum number of its characters.
pattern A string instance is considered valid if the regular expression matches the instance successfully.

JSON 同 XML 比较

  • 冗长(Verbose) 
    XML 比JSON 有过多的冗长因素,JSON对于程序员更容易编写
  • 数组的使用 
    XML 结构化数据,没有JSON 的数组
  • Parsing 
    JavaScript’s eval method parses JSON. When applied to JSON, eval returns the described object.

环境

下载配置 json-simple.jar , 在CLASSPATH中指向此包

JSON 同 Java 实体的对比

JSON JAVA
string java.lang.String
number java.lang.Number
true,false java.lang.Boolean
null null
array java.util.List
object java.util.Map

Java 中形成JSON

  • 例子
  1. import org.json.simple.JSONObject;
  2. classJsonEncodeDemo{
  3. publicstaticvoid main(String[] args){
  4. JSONObject obj =newJSONObject();
  5. obj.put("name","foo");
  6. obj.put("num",newInteger(100));
  7. obj.put("balance",newDouble(1000.21));
  8. obj.put("is_vip",newBoolean(true));
  9. System.out.print(obj);
  10. }
  11. }
  • 输出结果
  1. {"balance":1000.21,"num":100,"is_vip":true,"name":"foo"}

Java 中解析JSON

  • 例子
  1. import org.json.simple.JSONObject;
  2. import org.json.simple.JSONArray;
  3. import org.json.simple.parser.ParseException;
  4. import org.json.simple.parser.JSONParser;
  5. classJsonDecodeDemo{
  6. publicstaticvoid main(String[] args){
  7. JSONParser parser =newJSONParser();
  8. String s ="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
  9. try{
  10. Object obj = parser.parse(s);
  11. JSONArray array =(JSONArray)obj;
  12. System.out.println("The 2nd element of array");
  13. System.out.println(array.get(1));
  14. System.out.println();
  15. JSONObject obj2 =(JSONObject)array.get(1);
  16. System.out.println("Field \"1\"");
  17. System.out.println(obj2.get("1"));
  18. s ="{}";
  19. obj = parser.parse(s);
  20. System.out.println(obj);
  21. s ="[5,]";
  22. obj = parser.parse(s);
  23. System.out.println(obj);
  24. s ="[5,,2]";
  25. obj = parser.parse(s);
  26. System.out.println(obj);
  27. }catch(ParseException pe){
  28. System.out.println("position: "+ pe.getPosition());
  29. System.out.println(pe);
  30. }
  31. }
  32. }
  • 输出结果
  1. The2nd element of array
  2. {"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
  3. Field"1"
  4. {"2":{"3":{"4":[5,{"6":7}]}}}
  5. {}
  6. [5]
  7. [5,2]

参考

 

Useful Links on JSON 
Site on JSON - JSON’s Official site giving link on JSON specification, news, update etc. 
http://www.json.org/ 
The JavaTM Tutorials -The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. 
http://docs.oracle.com/javase/tutorial/index.html 
JSON - JSON at Wikipedia, the free encyclopedia 
https://en.wikipedia.org/wiki/JSON 
Free Java Download - Download Java for your desktop computer now! 
https://www.java.com/en/download/

0
0
分享到:
评论

相关推荐

    Json学习笔记

    ### JSON学习笔记:深入了解JSON与Spring框架中的初始化机制 #### JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而著称,不仅适用于人眼阅读,也便于机器解析和...

    json 学习笔记_20140116.pdf

    在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...

    json 学习笔记 相关知识点

    ### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...

    WCF返回JSON学习笔记

    ### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

    json学习笔记、jackson的jar包

    在这个“json学习笔记、jackson的jar包”中,我们可以深入探讨JSON和Jackson的相关知识点。 1. JSON基本概念: - JSON是一种文本格式,易于人阅读和编写,同时也易于机器解析和生成。 - JSON数据结构主要由对象...

    JSON学习笔记

    这篇"JSON学习笔记"可能涵盖了以下几个关键知识点: 1. JSON的基本结构:JSON数据由键值对(key-value pairs)组成,键和值之间用冒号隔开,键值对之间用逗号分隔。键必须是字符串,而值可以是字符串、数字、布尔值...

    Ajax&Json学习笔记

    ### Ajax & Json 学习笔记 #### 一、Ajax 简介 ##### 1.1 Ajax 概念 **Ajax**(Asynchronous Javascript + XML) 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,Ajax 可以使网页实现...

    javascript中的数组对象以及json学习笔记

    这篇学习笔记将深入探讨这两种数据结构的特性和用法。 首先,我们来了解JavaScript中的数组对象。数组是一种有序的数据集合,可以存储任意类型的数据,包括数字、字符串、对象等。在JavaScript中,数组是对象的一种...

    JSON学习笔记第1/2页

    ### JSON学习笔记 #### JSON与XML的对比 随着互联网技术的发展,数据交换成为了现代软件开发中的重要环节之一。为了满足不同场景下的需求,多种数据交换格式应运而生,其中最为人熟知的就是XML(可扩展标记语言)...

    json-lib 学习笔记 分享下

    这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...

    《Jackson 框架,轻易转换JSON》学习笔记

    本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...

    JS基础学习笔记-JSON

    JS基础学习笔记-JSON

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...

    《xStream完美转换XML、JSON》学习笔记

    《xStream完美转换XML、JSON》学习笔记 在IT领域,数据交换是常见的需求,而XML和JSON作为两种广泛使用的数据格式,它们之间的转换尤为重要。xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反...

    Go 学习笔记 高清

    根据提供的文件内容,以下是对Go语言学习笔记的详细知识点阐述。 Go语言是Google开发的一种静态类型、编译型、并发型,并具有垃圾回收功能的编程语言。它由Robert Griesemer、Rob Pike和Ken Thompson于2007年9月...

    Spring MVC 学习笔记 九 json格式的输入和输出

    在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...

    Go语言学习笔记.pdf 共174页

    Go语言学习笔记.pdf 共174页 Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分...

Global site tag (gtag.js) - Google Analytics