关于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 相关文章推荐
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
jquery $.ajax相关用法分享
Mar 16 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
小程序实现单选多选功能
Nov 04 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
JavaScript数组排序功能简单实现
May 14 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发送邮件类代码附详细说明
2008/07/10 PHP
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
浅谈php命令行用法
2015/02/04 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
比较完整的微信开发php代码
2016/08/02 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
Node.js模块加载详解
2014/08/16 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
产品质量承诺书
2014/03/27 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
青奥会口号
2014/06/12 职场文书
校运会新闻稿
2015/07/17 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python