关于JSON与JSONP简单总结


Posted in Javascript onAugust 16, 2016

一、什么是json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

二、什么是JSONP

JSONP(JSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。另一个解决这个问题的新方法是跨来源资源共享。

JSONP

定义:是一种跨域数据访问方式。

作用与原理:在客户端声明 callback回调函数之后,客户端通过script标签向服务器跨域请求数据,然后服务端返回相应的JSON数据并动态执行回调函数。

在jQuery中使用如下:

//JQuery JSONP Support 
var url = "http://192.168.0.103:12075/api/test.aspx?id=1&callback=?"; 
jQuery.getJSON(url, function(data){ 
// 处理返回的json 数据
alert("name:" + data.name+ ", Price:" + data.price); 
});

调用 webservices 使用如下:

$.getJSON( 
"http://192.168.0.103:12050/services/WebService1.asmx/ws/test?callback=?", 
{ name: "jim", time: "2pm" }, 
function(data) {
//处理返回的json 数据
alert(decodeURI(data.msg));
});

服务器端(webservices 后台代码):

[WebMethod] 
public void ws(string name,string time) { 
HttpRequest Request = HttpContext.Current.Request; 
string callback = Request["callback"]; 
HttpResponse Response = HttpContext.Current.Response; 
Response.Write(callback + "({msg:' 返回数据'})"); 
Response.End(); 
}

总结JSONP:

两点需注意:

1.不提供错误处理机制,有数据返回,没有不显示内容,获得一个404的错误

2.如果使用了不信任的服务会造成很大的安全隐患。

JSON

与XML相比,JSON是一个轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成,分两种:对象(使用下面点语法获取属性值)和数组(遍历数组,索引获取)。

1.把 JSON 文本转换为 JavaScript 对象

从 web 服务器上读取 JSON 数据,将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据.

JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误。

即:通过eval函数将json串转换为json对象,然后可以通过两种方法访问:

关于JSON与JSONP简单总结

服务器端:

// user 实体对象,后台序列化成对象,供前台使用
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(user);
context.Response.Write(strJson);

前台:

$.getJSON( 
"webdata/test.aspx",
function(data) {
//获取对象里面的一个值(username:用户姓名)
$("#divmessage").text(data.username);
}
);

2. 数组 获取

packJson = [
{"name":"nikita", "password":"1111"},
{"name":"tony", "password":"2222"}
];

循环遍历:

for(var i = 0; i < packJson.length; i++){
alert(packJson[i].name + " " + packJson[i].password);
}

以上所述是小编给大家介绍的关于JSON与JSONP简单总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
Jquery:ajax实现翻页无刷新功能代码
Aug 05 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
Nov 08 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
Mar 05 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
Aug 04 Javascript
Node.js常用工具之util模块
Mar 09 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
json与jsonp知识小结(推荐)
Aug 16 #Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
Aug 16 #Javascript
JS读写CSS样式的方法汇总
Aug 16 #Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
Aug 16 #Javascript
jQuery EasyUI Tab 选项卡问题小结
Aug 16 #Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 #Javascript
js 自带的 map() 方法全面了解
Aug 16 #Javascript
You might like
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
化工专业应届生求职信
2013/11/08 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
统计学教授推荐信
2014/09/18 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
教代会闭幕词
2015/01/28 职场文书
辞职信如何写
2015/02/27 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
docker-compose部署Yapi的方法
2022/04/08 Servers
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL