JSON初体验
来源:互联网 发布:淘宝客合作协议 编辑:程序博客网 时间:2024/05/18 16:13
转载于:http://www.cnblogs.com/qiantuwuliang/archive/2009/08/02/1537191.html
什么是JSON?JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互,比xml更轻量级。json本身利用了js中面向对象的形式。对象可以打点访问。
用途:原来写ajax,要从服务器后台得到返回值,如果利用ajax.dll可以返回一个dt;
但用jquery不能得到一个dt,要想得到dt里的数据就拼接字符串,然后在html中获得这个字符串,再分割开来。
并不知道用json这样一个非常简便的面向对象的数据格式。
语法:元素与值用冒号 ":" 隔开 元素与元素用逗号 "," 隔开 {} 之间是一个对象, 对象可以层层嵌套
[] 表示数组, 数组元素用逗号 "," 隔开 值可以是 string、number、object、array、true、false、null;
其中 string 要使用双引号(也有语言可以用单引号) string 中可以使用类似 C 语言的转义字符
number 可以使用科学计数法
举个简单的例子:
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
function showJSON() {
var user =
{
"username":"andy",
"age":20,
"info": { "tel": "123456", "cellphone": "98765"},
"address":
[
{"city":"beijing","postcode":"222333"},
{"city":"newyork","postcode":"555666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[0].postcode);
}
</script>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
function showJSON() {
var user =
{
"username":"andy",
"age":20,
"info": { "tel": "123456", "cellphone": "98765"},
"address":
[
{"city":"beijing","postcode":"222333"},
{"city":"newyork","postcode":"555666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[0].postcode);
}
</script>
JSON提供了json.js包,下载/Files/sunyaling/json.rar 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。
js本身可以转换json格式
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
//可以使用eval来转换JSON字符到Object
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = eval('(' + str + ')');
alert(obj.name);
}
--------------------
//或者使用parseJSON()方法
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = str.parseJSON();
alert(obj.toJSONString());
}
</script>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
//可以使用eval来转换JSON字符到Object
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = eval('(' + str + ')');
alert(obj.name);
}
--------------------
//或者使用parseJSON()方法
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = str.parseJSON();
alert(obj.toJSONString());
}
</script>
页面引用
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script src="js/jquery.json.js" type="text/javascript" charset="utf-8"></script>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script src="js/jquery.json.js" type="text/javascript" charset="utf-8"></script>
一个ajax结合json的例子:
服务器端返回数据,注意转译"\\"
cs
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->StringBuilder result = new StringBuilder();
result.Append("{");
result.Append("\"msg\":\""+str1.Replace("\"","\\\"")+"\","); // " \"
result.Append("\"times\":\""+str2+"\"");
result.Append("}");
Response.Write(result.ToString());
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->StringBuilder result = new StringBuilder();
result.Append("{");
result.Append("\"msg\":\""+str1.Replace("\"","\\\"")+"\","); // " \"
result.Append("\"times\":\""+str2+"\"");
result.Append("}");
Response.Write(result.ToString());
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
function ShowNum()
{
try
{
var port = $("#txtPort").val();
var time = $("#txtTime").val();
$.ajax({
url:'AjaxHander.aspx?action=getChatroomActions',
type:'post', //数据发送方式
dataType:'html', //接受数据格式 (这里有很多,常用的有html,xml,js,json)
data:'port='+port+'&time='+time+'&date='+new Date(), //要传递的数据
error: function(){ //失败
//alert('Error loading document');
},
success: function(msg)
{ //成功
var msJson = $.evalJSON(msg);
$("#ulListener").html(msJson.msg+$("#ulListener").html());
if($("#ulListener").find("li").length>10)
{
$("#ulListener").find("li").each(function(i) {
if(i>9)
$(this).remove();
});
}
$("#txtTime").val(msJson.times);//时间
}
});
}catch(e){alert(e);}
}
//ShowNum();
setInterval(ShowNum,5000);
</script>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script>
function ShowNum()
{
try
{
var port = $("#txtPort").val();
var time = $("#txtTime").val();
$.ajax({
url:'AjaxHander.aspx?action=getChatroomActions',
type:'post', //数据发送方式
dataType:'html', //接受数据格式 (这里有很多,常用的有html,xml,js,json)
data:'port='+port+'&time='+time+'&date='+new Date(), //要传递的数据
error: function(){ //失败
//alert('Error loading document');
},
success: function(msg)
{ //成功
var msJson = $.evalJSON(msg);
$("#ulListener").html(msJson.msg+$("#ulListener").html());
if($("#ulListener").find("li").length>10)
{
$("#ulListener").find("li").each(function(i) {
if(i>9)
$(this).remove();
});
}
$("#txtTime").val(msJson.times);//时间
}
});
}catch(e){alert(e);}
}
//ShowNum();
setInterval(ShowNum,5000);
</script>
- JSON初体验
- JSON初体验
- json学习初体验,json数据的解析
- json初体验---了解什么是json、json的作用,json的语法格式
- 体验 Delphi2009 的 JSON
- 体验 Delphi2009 的 JSON
- 体验Jackson Json
- struts2+ibatis2+spring2+dwr+json+jQuery 初体验
- Android给服务器发送json数据初体验
- struts2 中json使用体验
- struts2 中json使用体验
- json学习初体验--使用第三方的jar包实现bean、List、map创建json格式
- 项目拾遗——JSon再体验
- 初次体验Jquery(Ajax + Json)+Struts2
- 初体验
- 初体验
- 初体验
- 初体验
- ibatis2.x与mybatis(ibatis3.x)的比较
- jQuery 选择器 checkbox全选/取消全选
- android 双击事件
- 错误积累
- matlab处理字符串的一些函数
- JSON初体验
- 连续子序列最大和的各种算法
- Linux C/C++环境配置
- 韩语初级网站
- EXCEL 控制技巧
- java IO (四) 字节流与字符流之间的转换
- C#脚本实践(六): 脚本相对于C++的优势
- TIPS
- 十个小故事