关于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 相关文章推荐
js打印纸函数代码(递归)
Jun 18 Javascript
javascript加号&quot;+&quot;的二义性说明
Mar 04 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
jquery+html5制作超酷的圆盘时钟表
Apr 14 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
Jun 17 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
vue组件如何被其他项目引用
Apr 13 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 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/04/07 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
jQuery代码优化 选择符篇
2011/11/01 Javascript
js数组的操作详解
2013/03/27 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
vue实现文字加密功能
2019/09/27 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
如何选择使用结构还是类
2014/05/30 面试题
ktv收银员岗位职责
2013/12/16 职场文书
通信研究生自荐信
2014/02/01 职场文书
个人简历自我评价范文
2014/02/04 职场文书
网站美工岗位职责
2014/04/02 职场文书
2015年招生工作总结
2015/05/04 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
MySQL事务的隔离级别详情
2022/07/15 MySQL