关于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 相关文章推荐
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
使用js实现数据格式化
Dec 03 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
Mar 22 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
ReactNative页面跳转实例代码
Sep 27 Javascript
浅谈vue首屏加载优化
Jun 28 Javascript
vue router动态路由设置参数可选问题
Aug 21 Javascript
详解微信小程序动画Animation执行过程
Sep 23 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
德生1994机评
2021/03/02 无线电
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
JS常见算法详解
2017/02/28 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
一百多行python代码实现抢票助手
2018/09/25 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
亲子活动总结
2014/04/26 职场文书
研究生简历自我评
2015/03/11 职场文书
暂停营业通知
2015/04/25 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL