关于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 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
如何实现js拖拽效果及原理解析
May 08 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
解析PHP无限级分类方法及代码
2013/06/21 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
九步学会Python装饰器
2015/05/09 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
儿童python练习实例
2018/05/27 Python
flask应用部署到服务器的方法
2019/07/12 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
村优秀党员事迹材料
2014/01/15 职场文书
捐款倡议书范文
2014/02/02 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
移交协议书
2014/08/19 职场文书
个人先进事迹材料
2014/12/29 职场文书
中英文求职信范文
2015/03/19 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
会计主管竞聘书
2015/09/15 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书