当前位置: 主页 > Javascript >

Json简单使用例子

时间:2012-02-09  ¦  整理:站长每日一帖  ¦  点击:次  ¦  我要收藏
昨天下午一个织梦的群里居然有人问我json的问题,说实话,我真没学过,只是听过而已。然后那个人咬定我是高手,非得问我,没办法,我只好抽空研究。Json是一种轻量级的数据交换
   昨天下午一个织梦的群里居然有人问我json的问题,说实话,我真没学过,只是听过而已。然后那个人咬定我是高手,非得问我,没办法,我只好抽空研究。Json是一种轻量级的数据交换格式,可以方便快捷的应用在web当中,比xml更加灵活方便,不那么繁琐。我只好百度一些实例,然后开始研究。幸好网上有现成的例子供我研究,我一看还挺全的,显示页面和处理页面都有,我还想不错。结果一看呢,还不是我要的效果,因为我要获取的是服务器上的json数据,他那个是通过php模拟的,行不通。后来我一想,不是可以fopen也能打开远程资源么,查手册果然可以,然后打开可以获取到内容。但是问题出现了,一般的json数据都是类似这种的,比如下面的代码:
 {"a":{"player_id":2,"username":"1081421","nickname":"\u6c34\u6d01\u4e66","level":24,"experience":9320},"b":{"player_id":20,"username":"1115265","nickname":"\u4e00\u7c73\u9633\u5149\u3001","level":19,"experience":27009}}';
这个json字符串包含a和b两组数据,这样是好取的,用json.a.username这样就可以访问到里面的元素,可是当这个a换成数字就不行啦,不能用那种方法。我想破脑袋没想到,然后我就去群里问人,果然有了结果,原来可以用索引,也就是这样json[2].username,就可以访问啦。
  前台用的是ajax,用来获取服务器端的数据并打印出来,基本上和写其他的差不多,就是换成了请求json的几个函数,后台就是获取数据,我用的fopen,刚开始这个不知道怎么也不行,后来自然好啦,我也试过了别人给我的curl方法,同样可成功。好啦,废话不说啦,上代码咯。亲们。慢慢看啊。
---------------------------show.html------------------------------------------------
<html>
<head>
<title>发送JSON请求</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
  //在IE下创建XMLHttpRequest对象
  try
  {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e)
  {       
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
  catch(oc)
  {
    xmlHttp = null;
  }
 }
  //在Mozilla和Safari等非IE浏览器下创建XMLHTTPRequest对象
  if(!xmlHttp && typeof XMLHttpRequest != "undefined") 
 {
  xmlHttp = new XMLHttpRequest();
 }
return xmlHttp;
}
//发送JSON格式请求
function sendRequestJosn()
{
  var url="f.php";
  createXMLHttpRequest();
  xmlHttp.open("GET",url,true);
  xmlHttp.onreadystatechange=getJSON;
  xmlHttp.send(null);
}
//getJSON函数解析JSON字符串
function getJSON()

  if (xmlHttp.readyState == 4) {
     if (xmlHttp.status == 200) {
     var arr = xmlHttp.responseText;
     var json = eval("(" + arr + ")"); 


    

   var result="";
     result+="id:"+json[2].player_id+"<br/>";
     result+="用户名:"+json[2].username;
     document.getElementById('message').innerHTML = result;
 
     }
   }
}
</script>
</head>
<div id="message"></div>
<body onLoad="sendRequestJosn()">
<h3>用户信息如下所示:</h3>
</body>
</html>

========================f.php=========================
<?php
方法一:
header('Content-type:text/html;charset=utf-8'); 
$file=fopen("http://api.sxd.xd.com/order/s999.sxd.xd.com_plt.json","r") or exit("Unable to open file!");
while(!feof($file))
  {
 $message=fgets($file);
  }
echo $message;
?>
方法二:
<?php 

header("Content-Type:textml;charset=gb2312");
$orderid=rand(10000000,99999999);
$sign=md5("ccrd_10_".$orderid."_s999.sxd.xd.com_{the-test-api-key-for-s999}");


$curlPost = 'user=ccrdsdasd&gold=10&order='.urlencode($orderid).'&domain=s999.sxd.xd.com&sign='.urlencode($sign);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.sxd.xd.com/order/s999.sxd.xd.com_plt.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($ch);
echo $data;

curl_close($ch);




?>
至于这个curl方法我还没研究,所以呢细节我也不懂,亲们自己百度吧~~~~
(如果您觉得本站不错,请告诉身边的朋友,或转载到论坛、百度知道、贴吧等,记得带网址哟!)

    阅读过 Json简单使用例子 的网友还阅读了:

    

    评论or提问点击发表评论或提问!

    如果您有问题,请先查找解决办法,无法解决后请在此提问并将问题描述清楚!
    • 昵称 (必填)
    • 电子邮箱 (我们会为您保密) (必填)
    • 网站URL
    • 点击我更换图片
    

    最新评论内容

    
    回到顶部