JSON是什么?

JSON(JavaScript Object Natation)JS对象表示法,从属于JS(JavaScript),是一种基于文本、独立于语言的轻量级数据交换格式。它经常被拿来和XML作比较,比较方面一般有:

可读性——不相上下,XML的标签形式规范,JSON语法简易

可扩展性——二者的扩展性都很好,不过JSON可存储JS复合对象,XML就无缘了

编码难度——XML更符合自然语言规范,JSON更倾向与机器语言。JSON比XML更小、更快、更易解析

一、JSON结构

JSON数据有两种结构:

1.Name-Value对构成的集合,类似于HashMap

{
	"name":"Jenna",
	"age":"21"
}

2.Value的有序列表,类似于Array

[
	{"name":"Jenna","age":"21"},
	{"name":"lucy","age":"20"}
]

二、JSON的使用

对JSON的操作说到底就是操作一个Object对象,关于对Object的操作相信大家都不陌生,直接定义一个对象,赋值、取值、修改、删除等等一系列的基础性操作如下

//获取一个名为dg表格,新更改的行集合
row = $("#dg").datagrid('getChanges');
if (row.length) {
	var array=new Array;
	for (var i = 0; i < row.length; i++) {
		var obj = new Object();
		obj.BidRecorderId = row[i].BidRecorderId;
		obj.CompanyName = row[i].CompanyName;
		//添加属性,还可以用下边的格式定义
		obj["Quote"] = row[i].Quote;
		obj["QuoteScore"] = row[i].QuoteScore;
		//删除Quote属性
		delete obj.Quote;
		//更新,直接赋值即可
		obj.QuoteScore = "12"
		//都添加到array数组中
		array.push(obj);
	}
}

三、JSON的序列化和反序列化

在实际项目中js和controller之间传递的数据类型大部分是JSON格式的,另外引用第三方控件的时候,它们的很多操作返回值类型也是JSON格式。刚开始不知道JSON是什么,更不懂什么序列化反序列化,但是在做的过程中,需要序列化和反序列化的时候就上网查一下方法,很简单就实现了这个功能。

在.net中Json解析的几种方法(一篇博客上看到的,很实用)

主要类 命名空间 限制 内建LINQ支持
DataContractJsonSerializer System.Runtime.Serialization.Json 通用
JavaScriptSerializer System.Web.Script.Serialization 只能在Web环境使用
JsonArrayJsonObjectJsonValue System.Json 只能在Silverlight中使用
JsonConvertJArrayJObjectJValueJProperty Newtonsoft.Json 通用

序列化JSON

//序列化JSON类型的数据dataJson,并复制给arrayList
arrayList: JSON.stringify(dataJson)

反序列化JSON

//反序列化<span style="font-family:Calibri;">arrayList数据</span>
var data = Request["arrayList"];
JavaScriptSerializer jsData = new JavaScriptSerializer();
List<TestViewModel> listTest = jsData.Deserialize<List<TestViewModel>>(data);

小结:

JSON的名字很高大上,没用之前以为又是什么新技术,用过之后才知道就是咱们平常接触的一些东西。所以往后还得多尝试,这样才能把知识结成网,更好的做到思想的融会贯通。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 11:55:51

JSON是什么?的相关文章

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS

npm5 packag-lock.json

前几天升级了 Node.js v8.0 后,自带的 npm 也升级到了5.0,第一次使用的时候确实惊艳到了:原本重新安装一次模块要十几秒到事情,现在一秒多就搞定了.先不要激动,现在我来大概讲一下 npm 5 的一些大的变化: 使用npm install xxx命令安装模块时,不再需要--save选项,会自动将模块依赖信息保存到 package.json 文件: 安装模块操作(改变 node_modules 文件夹内容)会生成或更新 package-lock.json 文件 发布的模块不会包含 p

JS高程3:JSON

JSON,JavaScript Object Notation,JS对象表示法,是目前最常见的结构化数据传输形式. JSON并非编程语言,而是一种数据结构,像mp4.avi一样,只是一种数据格式而已.(数据结构可以包含很多数据类型) JSON值的类型 简单值 对象 数组 简单值:字符串.数字.布尔值和null,注意不包括undefined. 注意:JSON中的字符串必须用双引号. 对象:对象就是无序的键值对,而键值中的值也可以是简单值.对象或者数组. 注意:JSON中对象的属性必须用双引号括起来

C#如何拿到从http上返回JSON数据?

在实际开发中,我们经常会使用到API,所谓API一般就是一个地址,我们称之为接口.然后我们通过用C#对这地址发送请求,请求后,服务器就会给我们返回数据,一般是XML或者JSON,这里我们主要讲述的是JSON. 为了演示,我们这里准备了一个接口,这是一个查询物流的接口.(读者读到这篇文章的时候,接口可能有效,也可能失效,因为接口是网上找的,不是笔者自己写的,但是原理是一样的.) 接口:  http://www.kuaidi100.com/query?type=快递公司编码&postid=物流单号

JSON 简介

ylbtech-JSON: JSON 简介 JSON:JavaScript Object Notation(JavaScript 对象表示法) JSON是存储和交换文本信息的语法,类似 XML. JSON 比 XML 更小.更快.更易解析. JSON 实例 { "employee":[ {"firstName":"John","lastName":"Doe"}, {"firstName"

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

JSON 简单例子

代码: json [ { "title" : "a", "num" : 1 }, { "title" : "b", "num" : 1 }, { "title" : "c", "num" : 1 }] 例子1 js var box=[ { title:'a', num:1, height:177, }, { title:'b',

JSON与Javabean转换的几种形式

JSON格式的数据传递是最常用的方法之一,以下列出了常用的几种形态以及与Javabean之间的转换: String json1="{'name':'zhangsan','age':23,'interests':[{'interest':'篮球','colors':['绿色','黄色']},{'interest':'足球','colors':['红色','蓝色']}]}"; String json2="[{'name':'zhangsan'},{'name':'lisi'},{

python提取网页中json数据

用法示例: 相对于python解析XML来说,我还是比较喜欢json的格式返回,现在一般的api返回都会有json与XML格式的选择,json的解析起来个人觉得相对简单些 先看一个简单的豆瓣的图书查询的api返回 http://api.douban.com/v2/book/isbn/9787218087351 {"rating":{"max":10,"numRaters":79,"average":"9.1"