关于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 IE中的DOM ready应用技巧
Jul 23 Javascript
JavaScript关于select的相关操作说明
Jan 13 Javascript
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
原生js实现回复评论功能
Jan 18 Javascript
Mongoose学习全面理解(推荐)
Jan 21 Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 Javascript
node.js支持多用户web终端实现及安全方案
Nov 29 Javascript
基于vue如何发布一个npm包的方法步骤
May 15 Javascript
小程序云开发之用户注册登录
May 18 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
js实现简易计算器小功能
Nov 18 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生成静态页面的简单示例
2014/04/17 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
golang与PHP输出excel示例
2016/07/22 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
JsRender实用入门教程
2014/10/31 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
详解Vue之事件处理
2020/07/10 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python学习手册中的python多态示例代码
2014/01/21 Python
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python中安装easy_install的方法
2018/11/18 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
求职简历的自我评价怎样写好
2013/10/07 职场文书
实习生体会的自我评价范文
2013/11/28 职场文书
清洁工岗位职责
2014/01/29 职场文书
大学毕业感言50字
2014/02/07 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
反邪教学习心得体会
2016/01/15 职场文书
转变工作作风心得体会
2016/01/23 职场文书
公司周年庆寄语
2019/06/21 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
Python 匹配文本并在其上一行追加文本
2022/05/11 Python
apache ftpserver搭建ftp服务器
2022/05/20 Servers
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript