`
schy_hqh
  • 浏览: 556052 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JSON

 
阅读更多

JSON的数据结构

JSON中可以使用的数据类型

在线查看JSON中定义的数据

JSON格式校验

JSON与Javascript进行组合

使用JSON Path查询特定数据

使用JSONP完成跨域访问

JSON的变体-MongoDB中存储数据所用的BSON

 

JSON is a lightweight text-based open standard data-interchange format. It is human readable. JSON is derived from a subset of JavaScript programming language (Standard ECMA-262 3rd Edition—December 1999). It is entirely language independent and can be used with most of the modern programming languages.

JSON是一个轻量级的基于文本的标准数据交换格式。可读性极佳。

JSON源于javascript编程语言的一个子集所发展而来。

它不依赖于任何语言的开发环境,并且被大多数现代编程语言所支持的。

 

JSON is often used to serialize and transfer data over a network connection, for example between web server and a web application. In computer science, serialization is a process to transforming data structures and objects in a format suitable to be stored in a file or memory buffer or transmitted over a network connection. Later on, this data can be retrieved. Because of the very nature of the JSON, it is useful for storing or representing semi structured data.

JSON通常被用来在网络上通过序列化完成传输功能。

在计算机科学中,序列化指的是转换数据结构和使用合适的格式将对象存储到文件或者内存缓冲区或者在网络上传输。

以后,该数据能够被还原。因为JSON所采用的完全自然的表达方式,使其有利于保存或重现结构化的数据。

 

 

JSON files are saved with .json extension. Internet media type of JSON is "application/json".

JSON扩展名: .json

MIME类型:application/json

 

JSON的组成:

key:字符串

value:

基本类型:字符串("Kidle Edition")、数字(1.20)、布尔值(true/false)、null

结构化数据类型:对象({ })、数组([ ])

 


 

 

 

=======================================================================

 

JSON uses Object and Array as data structures and strings, number, true, false and null as vales. Objects and arrays can be nested recursively. - See more at: http://www.w3resource.com/JSON/introduction.php#sthash.AtGiLMQ5.dpuf

JSON uses Object and Array as data structures and strings, number, true, false and null as vales.

Objects and arrays can be nested recursively

对象与数组嵌套完成数据定义

 

{
    "firstName": "Bidhan",
    "lastName": "Chatterjee",
    "age": 40,
    "address": {
        "streetAddress": "144 J B Hazra Road",
        "city": "Burdwan",
        "state": "Paschimbanga",
        "postalCode": "713102"
    },
    "phoneNumber": [
        {
            "type": "personal",
            "number": "09832209761"
        },
        {
            "type": "fax",
            "number": "91-342-2567692"
        }
    ]
}

 

JSON中合法的Value

String || Number || Object || Array || TRUE || FALSE || NULL
A value can be a string, a number, an object, an Array, a Boolean value (i.e. true or false) or Null. This structure can be nested.
字符串 || 数字 || 对象 || 数组 || TRUE || FALSE || NULL

对象与数组可以嵌套

 

在线查看/格式化JSON中定义的数据

http://jsoneditoronline.org/

http://jsonviewer.stack.hu/

http://chris.photobooks.com/json/default.htm

 

JSON格式正确性校验

http://jsonlint.com/

http://www.bejson.com

 

JSON与Javascript进行组合

What is serialize and deserialize

Get JSON value from JavaScript value is serialization and when it's other way (JSON to JavaScript) is deserialization. serialization: 将javascript中的对象转换为JSONdeserialization: 将JSON转换为javascript中的对象

 

JavaScript JSON object

The JavaScript JSON object comprises methods using which you can convert JavaScript values to JSON format and JSON notation to JavaScript values.

Javascript中的JSON对象包含这样的方法:

JSON.stringify:将Javascript中定义的变量转换为JSON格式的数据

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSON.stringify</title>
</head>
<body>
	<script type="text/javascript">
		var w3r = {};
		w3r.name = "w3resource";
		w3r.ip = "201.2.31.82";
		//将javascript对象转换为json数据
		var jsonStr = JSON.stringify(w3r);
		document.write(typeof jsonStr);
		document.write(": ");
		document.write(jsonStr);
		
		//output:
		//string:{"name":"w3resource","ip":"201.2.31.82"} 
	</script>
</body>
</html>

 

JSON.parse:将JSON格式的数据转换为Javascript中的对象

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSON.stringify</title>
</head>
<body>
	<script type="text/javascript">
		var jsonStr = '{"name":"w3resource","ip":"201.2.31.82"}';
		var converToObj = JSON.parse(jsonStr);
		document.write("name=");
		document.write(converToObj.name);
		document.write(", ip=");
		document.write(converToObj.ip);
		//output:
		//name=w3resource, ip=201.2.31.82 
	</script>
</body>
</html>

 

 

使用JSON Path查询特定数据

要使用jsonPath进行查找,需要引入2个额外的js:json.js, jsonpath.js (见附件)

jsonPath(obj, expr [, args])

obj: 由json转换得到的对象

expr:查询字符串(http://goessner.net/articles/JsonPath/)

[,args]: 暂时不学

 

{
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    }
}

 

XPath JSONPath Result
/store/book/author $.store.book[*].author the authors of all books in the store
//author $..author all authors
/store/* $.store.* all things in store, which are some books and a red bicycle.
/store//price $.store..price the price of everything in the store.
//book[3] $..book[2] the third book
//book[last()] $..book[(@.length-1)]
$..book[-1:]
the last book in order.
//book[position()<3] $..book[0,1]
$..book[:2]
the first two books
//book[isbn] $..book[?(@.isbn)] filter all books with isbn number
//book[price<10] $..book[?(@.price<10)] filter all books cheapier than 10
//* $..* all Elements in XML document. All members of JSON structure.

 

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>
			Insert title here
		</title>
	</head>
	<body>
		<script type="text/javascript" src="json.js"></script>
		<script type="text/javascript" src="jsonpath.js"></script>
		<script type="text/javascript">
			var json = {
				"MovieDatabase": {
					"movie": [{
						"name": "The Change-Up",
						"genre": "comedy",
						"director": "David Dobkin",
						"Facebook_like": 252
					},
					{
						"name": "Rise of the Planet of the Apes",
						"genre": "SciFi",
						"director": "Rupert Wyatt",
						"Facebook_like": 472
					},
					{
						"name": "30 Minutes or Less",
						"genre": "adventure",
						"director": "Ruben Fleischer",
						"Facebook_like": 114
					},
					{
						"name": "Final Destination 5",
						"genre": "Horror",
						"director": "Steven Quale",
						"Facebook_like": 241
					}]
				}
			}
		</script>
		
		<script type="text/javascript">
			var result = "";
			result = jsonPath(json, "$.MovieDatabase.movie[*].name").toJSONString();
			document.write(result);
			//output
			//["The Change-Up","Rise of the Planet of the Apes","30 Minutes or Less","Final Destination 5"] 
		</script>
	</body>

</html>

 

 

 

使用JSONP完成跨域请求

JSONP is used to request data from a server residing in a different domain. But why do we need a special technique to access data from a different domain? It's because of the Same Origin Policy.

Same Origin Policy 同源策略

In general, this policy states that, if protocol (like http), Port number (like 80) and host (like example.com) is different from where data is being requested, it should not be permitted.
But HTML <script> element is allowed to perform content retrieval from foreign origins.

 

JSONP is mostly used to get data using RESTFull APIs:

比如从 Flicker图片分享网站获取图片

http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?

 

 

<!DOCTYPE html>
<html>
	<head>
		<style>
			img{ height: 100px; float: left; }
		</style>
		<script src="http://code.jquery.com/jquery-latest.js">
		</script>
		<title>
			An JSONP example from w3resource
		</title>
	</head>
	<body>
		<div id="images">
		</div>
		<script>
			$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", {
				tags: "dogs",
				tagmode: "any",
				format: "json"
			},
			function(data) {
				$.each(data.items,
				function(i, item) {
					$("<img/>").attr("src", item.media.m).appendTo("#images");
					if (i == 3) return false;
				});
			});
		</script>
	</body>

</html>
 

 

 

 

JSON的变体-MongoDB中存储数据所用的BSON

 

  • 大小: 49.4 KB
  • 大小: 20.1 KB
分享到:
评论

相关推荐

    json paser 属于idea插件 用于解析json

    json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于...

    Linux JSON 命令总结.zip_json linux_shell解析json

    在Linux环境中,处理JSON数据是常见的任务,尤其是在服务器管理和自动化脚本中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将深入探讨如何...

    最好用的c++json库 nlohmann json源代码

    最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json...

    JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j

    标题“JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j”表明这是一个关于如何在LabVIEW中实现JSON转换的实践教程或示例。 描述中提到,“LabVIEW建立JSON通讯示例,通过建立簇,将数据转换成...

    MFC使用json11解析JSON

    json11::Json jsonObject = json11::Json::parse(jsonString); if (jsonObject.is_object()) { // 处理解析成功的对象 } else { // 处理解析错误 } ``` 一旦你有了JSON对象,可以访问其成员或进行修改。例如,...

    json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】

    json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...

    java json api,json api

    Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...

    json转换jsonschema

    而JSON Schema则是一个JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema,它为JSON数据提供了验证规则,确保数据的准确性和一致性。 在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema...

    json-c 一个用于c语言的json解析库,很强大

    在这个例子中,我们首先使用`json_tokener_parse`解析JSON字符串,然后通过`json_object_get_string`和`json_object_get_int`获取JSON对象中的数据,最后使用`json_object_put`释放内存。这就是`json-c`库基本的使用...

    JSON net.sf.json jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源项目Apache软件基金会下的一个...

    json net.sf.json

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它以文本形式存储和传递数据,易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源Java库,它...

    json数据展示插件,jsonview.js

    jsonview是chrome浏览器的一个插件,用来在浏览器中查看json数据。比如你在浏览器中可以查看从服务器端传回来的json数据,这些数据可能没有经过格式化的,也或者是经过了unicode编码,没有缩进,没有换行等等,造成...

    C# json格式解析,Json格式字符串与C#对象相互转换,类库+使用案例,注释详细

    C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...

    JAVA-JSON工具转换类

    可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...

    json for PHP4.0

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在PHP中,JSON常用于与前端交互,传输数据。PHP 4.0版本虽然相对较旧,但仍然可以处理JSON数据,只是...

    JSON文件查看器,用于json文件的查看

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务与客户端之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。JSON文件通常以.js或.json为扩展名,其数据结构主要...

    json2.js 字符串转转json对象工具

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,这使得JSON对于程序员...

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    这篇关于“经典ASP读取JSON字符串/生成JSON对象,数组对象等”的知识将详细介绍如何在ASP环境中处理JSON数据。 1. **JSON对象与数组的结构**: JSON对象以大括号{}表示,键值对之间用逗号分隔。键必须是字符串,用...

    JsonSQL:用SQL语句解析JSON文件

    **JsonSQL: SQL语句解析JSON文件** 在大数据处理和Web应用中,JSON(JavaScript Object Notation)格式已经成为数据交换的常见格式。然而,对于习惯使用SQL查询关系型数据库的人来说,处理JSON数据可能会觉得不太...

    PB解析json,解析JSON案例,解析jsondemo

    标题中的“PB解析json,解析JSON案例,解析jsondemo”表明了本文主要关注的是PowerBuilder(简称PB)如何处理JSON数据。在现代软件开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,...

Global site tag (gtag.js) - Google Analytics