数据格式json讲解
JSON
在使用名称/值对或XML时,实际上是使用javascript从应用程序中取得数据并将数据转换成另一种数据格式。javascript不仅作为格式化语言使用,还可以使用javascript语言中的对象来表示数据。
将javascript对象转换成可以随请求发送的数据(同步异步都可以)。
简单的说,JSON可以将javascript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松的传递这个字符串,或者在异步应用程序中将字符串从web客户机传递给服务器端程序。
JSON可以表示数组和复杂的对象,而不仅仅是键和值得简单列表。
JSON表示名称/值对:
{"name1":"rose1","name2":"rose2","name3":"rose3"}
多个键/值逗号分开。
值的数组
表示一组值时,将多个带花括号的记录分组在一起。
{
"people":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
]
}
只有people是变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名字,年龄和电子邮件。上面演示如果用括号将记录组合成一个值,当然也可以使用相同的语法表示多个值(每个值包含多个记录)
{
"authors":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
],
"musicians":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
]
}
注意了 在不同的条目authors,musicians之间,里面的名称/值可以不一样的。在处理JSON格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以用不同的数据表示方式,甚至可以以不同的方式来表示同一事物。
在javascript中使用JSON
JSON是javascript原生格式,这意味着在javascript中处理JSON数据不需要任何特殊的API或工具包。
将JSON数据赋值给变量:
可以将JSON格式的数据字符串直接赋值给javascript变量。
var people=
{
"authors":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
],
"musicians":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
]
}
访问数据:
上面的长字符串实际上只是一个数组,将这个数组放进javascript变量之后,就可以轻松访问它。只需要用点好表示法来表示数组元素。
所以要访问authors列表中的第一个条目的姓名:
people.authors[0].name;
注意,数组索引是从0开始。所以这行代码首先访问变量people,然后移动到authors条目,再移动到第一个记录,最好访问name键的值。结果是:rose1。
使用这样的语法可以处理任何JSON格式的数据。
修改JSON数据
可以用点号和括号访问数据,也可以用同样的方法修改数据。
people.authors[0].name="summer";
在将字符串转换为javascript对象之后,就可以这样修改变量的值。
转换回字符串
将对象转换回字符串。
String newJSONtext=people.toJSONString();
现在就获得了一个可以在任何地方使用的文本字符串,如,将它用在AJAX中的请求字符串。
重要的是,可以将任何javascript对象转换为JSON文本。并非只能处理原来用JSON字符串赋值的变量。现在对名为的对象进行转换,只需执行相同形式的命令即可:
String myObjectJSON=people.toJSONString();
使用JSON,只需要一个简单的函数,就可以获得经过格式化的数据,这样就可以将数据转换为可以在请求中发送给服务器端程序的格式。
这种格式很容易用于发送和接收与对象甚至对象数组对应的数据。
JSON的真正价值:
JSON是适用于ajax应用程序的一种有效格式,因为它使javascript对象和字符串值之间得以最快转换,由于ajax应用程序很适合用纯文本发送给服务器端程序,还可以接收纯文本。
XML也可以提供文本方面的类似的益处,但用于将javascript对象转换成XML的几个现有的API没有JSON API成熟。
JSON最大的价值及时可以将javascript真正的作为javascript而非数据格式语言进行处理。你之前所学到的所有有关javascript对象的技巧都额可以在代码中使用,而无需考虑如何将这些对象转换为文本。你只需在之后,用该JSON方法调用即可:
String myObjectJSON=myObject.toJSONString();
现在就可以可以将结果发送给服务器了。
将JSON发送给服务器
通过GET以名称/值对发送JSON
将JSON数据发给服务器的最简单方法就是将其转换为文本,然后以名称/值对的值得方法进行发送。注意的是,JSON格式的数据是相当长的一个对象。
var people=
{
"authors":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
],
"musicians":[
{"name":"rose1","age":"18","email":"1554@555.com"},
{"name":"rose2","age":"28","email":"15dd4@555.com"},
{"name":"rose3","age":"38","email":"5554@555.com"}
]
}
以上是JSON格式的一个javascript对象。
要以名称/值对将其发送到服务器端,如下
var url="xx.php?people="+people.toJSONString();
myhttp.open("GET",url,true);
myhttp.send(null);
值得注意的是,JSON数据中会有空格和各种字符,web浏览器往往会试着对其进行解析。要确保这些字符不会再服务器上(或者在将数据发送给服务器的过程中)引起混乱,需要用javascript的escape()方法处理下。
var url="xx.php?people="+escape(people.toJSONString();)
myhttp.open("GET",url,true);
myhttp.send(null);
TIP: escape()函数可以处理空格,斜线和其他任何可能影响浏览器的内容,并将它们转换成WEB可用字符(如
数据格式json讲解的更多相关文章
- JSON讲解和“弹窗”
json定义形式{key1:value1, key2:value2, key3:value3.....} 例: title>JSON讲解</title> <script src ...
- XMLHttpRequest实现Ajax &数据格式JSON
GET请求 index <%@ page language="java" contentType="text/html; charset=utf-8" p ...
- Json 讲解
JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...
- 使用JavaScriptSerializer序列化集合、字典、数组、DataTable为JSON字符串 分类: 前端 数据格式 JSON 2014-10-30 14:08 169人阅读 评论(0) 收藏
一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...
- 数据格式JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...
- Beego 输出数据格式JSON、XML、JSONP
JSON.XML.JSONP beego 当初设计的时候就考虑了 API 功能的设计,而我们在设计 API 的时候经常是输出 JSON 或者 XML 数据,那么 beego 提供了这样的方式直接输出: ...
- JSON数据格式
JSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人 ...
- (转)JSON数据格式和js操作json总结
原:http://niutuku.com/tech/javaScript/273643.shtml JSON数据格式和js操作json总结 来源:niutuku.com | vince ...
- 使用JSON的数据格式
在说JSON之前,我们先来看一下在javascript中创建对象的方式,也就是创建对象的字面量表示法.我们知道js中有五种基本的数据类型,分别是: Undefined(变量可能没有声明或者赋值) ...
随机推荐
- IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题
在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的: 这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让 ...
- AIX UNIX 系统管理、维护与高可用集群建设——数据库结构设计
在对数据库类应用进行优化的过程中我们了解到一个原则,即思想上要从结构设计抓起,按照下面的顺序: 1.数据库逻辑结构设计和物理设计. 2.数据库对象部署和SQL代码编写. 3.数据库实例性能调整和优化. ...
- Android 回调接口是啥,回调机制详解(zhuan)
回调函数http://blog.csdn.net/a78270528/article/details/46918601 Android框架 android frame work: http://blo ...
- 论文阅读(Xiang Bai——【CVPR2015】Symmetry-Based Text Line Detection in Natural Scenes)
Xiang Bai--[CVPR2015]Symmetry-Based Text Line Detection in Natural Scenes 目录 作者和相关链接 方法概括 创新点和贡献 方法细 ...
- [Ubuntu] change mouse scrolling between standard and natural
Standard: sudo vi .Xmodmap insert the content as below pointer = Natural: sudo vi .Xmodmap insert th ...
- 我的archlinux中安装的关于xfce4的软件
包括一些panel的插件: xfce4-appfinder - xfce4-battery-plugin - xfce4-eyes-plugin - xfce4-mixer - xfce4-netlo ...
- 无光驱在32位windows系统下安装64位windows系统
位的系统. 大家都知道,32位的操作系统最多只能支持3.2G的内存,现在内存白菜价,很多人都在原有基础上购入新内存,这样最少也有4G了,为了让内存不浪费,我 们只有升级到64位操作系统.但是很多朋友又 ...
- 【笔记】css hover 伪类控制其他元素
最近在模仿一个网站的项目 当中有一个效果需要利用到hover效果因为不太想写jq脚本所以百度了一下css hover的运用发现原来hover也可以控制其他元素的变化的 但是这有一个要求 就是添加hov ...
- Windows下底层数据包发送实战
1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求 ...
- c# winform vlcPlayer播放器
vlcPlayer是一款免费开源的播放器项目,可以播放几乎所有的视频格式. 第一步:获取dll 安装vlcplayer视频播放器,在安装目录下面获取所需的dll. dll文件夹:plugins 还有2 ...