关于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 相关文章推荐
关于图片验证码设计的思考
Jan 29 Javascript
去掉gridPanel表头全选框的小例子
Jul 18 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
用javascript读取xml文件读取节点数据
Aug 12 Javascript
jquery实现动静态条形统计图
Aug 17 Javascript
详解JavaScript 中的 replace 方法
Jan 01 Javascript
JavaScript地理位置信息API
Jun 11 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
在Vue 中获取下拉框的文本及选项值操作
Aug 13 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文件上传你必须知道的几点
2015/10/20 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
酒店副总岗位职责
2013/12/24 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
《迟到》教学反思
2016/02/24 职场文书
Python源码解析之List
2021/05/21 Python