添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
01. JSON简介

1.1 JSON概述
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集 。 JSON采用完全独立于语言的文本格式,使用了类C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。

JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。

1.2 JSON语法

JSON语法是JavaScript对象表示法语法的子集,语法规则如下:

  • 数据在名称/值对中

  • 数据由逗号分隔

  • 花括号保存对象

  • 方括号保存数组

1.3 JSON键值对

JSON 数据的书写格式是:名称/值对。

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

"firstName" : "John"

1.4 JSON值类型

  • 数字(整数或浮点数)

  • 字符串(在双引号中)

  • 逻辑值(true或false)

  • 数组(在方括号中)

  • 对象(在花括号中)

1.5 JSON对象

JSON对象在花括号中书写:

对象可以包含多个名称/值对:

{ "firstName":"Jin" , "lastName":"Deng" }

1.6 JSON数组

JSON数组在方括号中书写:

数组可包含多个对象:

"people":[ {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}, {"firstName":"Jason","lastName":"Hunter","email":"bbbb"}, {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}
02. JSON Support in Qt

2.1 Qt中JSON概述

Qt提供了处理JSON数据的支持。JSON是一种编码来自Javascript的对象数据的格式,但现在已广泛用作Internet上的数据交换格式。

Qt中的JSON支持提供了易于使用的C ++ API来解析,修改和保存JSON数据。它还支持以二进制格式保存此数据,该格式可以直接“ mmap”访问并且访问速度非常快。

有关JSON数据格式的更多详细信息,可以在json.orgRFC-4627中找到

2.2 Qt中JSON类型

JSON是一种存储结构化数据的格式。它具有6种基本数据类型:

  • double
  • string
  • array
  • object
  • 值可以具有上述任何类型。布尔值由JSON中的true或false字符串表示。JSON并未明确指定数字的有效范围,但是Qt中的支持仅限于有效范围和双精度。字符串可以是任何有效的unicode字符串。数组是值的列表,而对象是键/值对的集合。对象中的所有键都是字符串,并且对象不能包含任何重复的键。

    JSON的文本表示形式将数组括在方括号([…])中,将对象括在大括号({…})中。数组和对象中的条目以逗号分隔。对象中键和值之间的分隔符是冒号(:)。

    简单的JSON例子如下:

    "FirstName": "John", "LastName": "Doe", "Age": 43, "Address": { "Street": "Downing Street 10", "City": "London", "Country": "Great Britain" "Phone numbers": [ "+44 1234567", "+44 2345678"

    上面的示例由一个具有5个键/值对的对象组成。其中两个值是字符串,一个是数字,一个是另一个对象,最后一个是数组。

    有效的JSON文档是数组或对象,因此文档始终以方括号大括号开头。

    03. JSON类

    QT4中使用第三方库QJson解析JSON文件。

    QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中。

    QT5新增加如下七个相关类:

    QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iterator 用于遍历QJsonObject的STL风格的非const遍历器 QJsonParseError 报告 JSON 处理过程中出现的错误 QJsonValue 封装 JSON 值 QJsonArray 封装 JSON 数组
    04. 附录

    4.1 JSON官方网站:http://json.org/

    4.2 JsonCpp源码下载:https://github.com/open-source-parsers/jsoncpp

    Java中在特定区间产生随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于: 如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现

    java通讯录查找 java通讯录程序

    通讯录程序 要求:使用图形用户界面。用数据库建立 1 个通讯录表。(不限使用哪种数据库)。能连接数据库并实现查询、增、删、改等功能。 CreateJFrame1 package 窗口; 3 import java.awt.Color; 4 import java.awt.Container; 5 import java.awt.event.ActionEvent; 6 import