关于json的一些事
来源:互联网 发布:java http base64 编辑:程序博客网 时间:2024/05/17 02:55
因为平时老是接触它,但是又不是很了解,所以整理一下
关于json的格式
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title> 标题 </title></head><body><script type="text/javascript"> //定义一个json 相当于定义了一个对象名 以及 它的属性 // { 键值对, 键值对 } var json1 = { 'key1':123 , 'key2':'stringvvv' } ; document.write( json1.key1 + "<br>" ); document.write( json1.key2 + "<br>" ); </script><br>----------------------------------<br><script type="text/javascript"> //键值对中, 值不仅仅可以是数字或字符串, 还可以是另一个json var json2 = { 'key1':123, 'key2':{ 'key21':12312, 'key22':'sssss' } }; document.write( json2.key1 + "<br>" ); document.write( json2.key2 + "<br>" ); document.write( json2.key2.key21 + "<br>" ); document.write( json2.key2.key22 + "<br>" ); </script><br>----------------------------------<br><script type="text/javascript"> //键值对中, 值不仅仅可以是数字或字符串或json, 还可以是一个json数组,用[]包起来 var json3 = { 'key1':123, 'key2':{ 'key21':12312, 'key22':'sssss' }, 'key3':[ {'key33':123,'key44':456 }, {'key33':123,'key44':456}, {'key33':123,'key44':456} ] }; document.write( json3.key3[0] + "<br>" ); document.write( json3.key3[0].key33 + "<br>" ); document.write( json3.key3[0].key44 + "<br>" ); document.write( json3.key3[1] ); </script></body></html>
如何用Javascript获取远程json
情况1:
以股票行情接口为例
如果要获得 http://hq.sinajs.cn/rn=61fdj&format=text&list=stock_sh_up_5min_20 输出的数据
打开链接,可以看到输出的是 stock_sh_up_5min_20 = ...
也就是说服务器返回的是一段js代码,所以我们在本地建立一个<script></script>,并把src等于上面的这个链接,像这样:
<script src="http://hq.sinajs.cn/rn=61fdj&format=text&list=stock_sh_up_5min_20" language="javascript"></script>
那么就相当于得到了里面的数据(虽然里面的变量不是我们定义的,但是加了这段script,就相当于我们定义了这些变量,脚本里也多了这些变量),然后就可以使用它们了,像这样:
<script language="javascript">alert(stock_sh_up_5min_20[0].symbol)</script>
类似的,还有这个
<script type="text/javascript" src="http://hq.sinajs.cn/list=sh601006" charset="gb2312"></script>
<script type="text/javascript">
var elements=hq_str_sh601006.split(",");
document.write("current price:"+elements[3]);
</script>
情况2:
情况1中由于服务器已经插入了 var 变量 = xxxx , 所以可以直接操作变量
而对于这种 https://data.btcchina.com/data/ticker?market=btccny 输出的是标准的json格式
{
"ticker": {
"high": "2894.97",
"low": "2850.08",
"buy": "2876.92",
"sell": "2883.80",
"last": "2875.66",
"vol": "4133.63800000",
"date": 1396412995
}
}
可以使用 jquery为我们提供的跨域获取json的getJSON()函数
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title> 标题 </title><script type="text/javascript" src="js/jquery-1.9.1.min.js"></script></head><body><script type="text/javascript"> var url = "https://data.btcchina.com/data/ticker?market=btccny"; $.getJSON( url, function(data){ document.write( data + "<br>" ); document.write( data.ticker + "<br>" ); document.write( data.ticker.high + "<br>" ); document.write( data.ticker.sell + "<br>" ); } ); </script></body></html>
情况3:
这个链接 http://q.stock.sohu.com/app1/stockSearch?method=search&callback=searchBox.output&type=all&keyword=60
返回的是一个js代码,开头的searchBox.output是一个回调函数,我们可以通过修改callback参数来自定义我们的回调函数
http://q.stock.sohu.com/app1/stockSearch?method=search&callback=output&type=all&keyword=60
根据返回的数据格式,我们先定义好一个函数
function output(json) { alert(json.result) }
然后用<script></script>的src把上面的网址引进去,同时js为我们提供了createElement()方法 可以动态创建一个<script></script>
最后代码如下:
//输出远程传回来的股票代码 输入提示 function output(json) { var result = json.result; //for( var row in result) { $('.codesuggest').html( result.toString() ); //} } //根据src创建相应的script function addScriptTag(src){ var script = document.createElement('script'); script.setAttribute("type","text/javascript"); script.src = src; document.body.appendChild(script); } //输入框输入股票代码,把代码加进src $('.codesearch').keyup(function(){ var src = $(this).val().toString(); if( src.length ) { src = "http://q.stock.sohu.com/app1/stockSearch?method=search&callback=output&type=cnsi&keyword=" + src; addScriptTag(src); } });
情况4:
这个链接 http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getSymbolGN?symbol=sh600048
让我头疼了很久,是一个 [] 包起来的json数组
尚未解决,求指导- 关于json的一些事
- 关于json的一些误解
- 关于Json的一些东西
- 关于JSON的一些总结
- 关于新手对于json的一些话
- Spring-webmvc关于json的一些问题
- 关于json的一些注意点
- 关于json对象和数组的访问的一些问题
- 关于使用C++ json库一些错误的解决方法
- 关于Android解析json数据的一些处理代码
- 关于xml和Json数据解析的一些总结
- 【Day28】关于json数据交换的一些知识点
- 关于Springmvc+Spring4整合json的一些问题
- 关于json字符串一些误区
- 关于JSON一些小例子
- 关于json的那些事
- Json的一些了解
- JSON的一些基础知识
- 520最想得到的礼物就是你
- VC下执行DOS命令并得到输出
- [职业规划]从工程师到项目经理
- Matlab中使用外部系统命令(如C++编译的exe等)
- ruby on rails install Records @Linux
- 关于json的一些事
- 【容易打工网】实习,第一场午餐跟谁吃?
- android示例之AutoCompleteTextView
- Apple 企业开发者账号&邓白氏码申请记录
- C/C++位运算操作
- poj2350Above Average
- 研究生常用的十八大学术搜索引擎
- 关于php-fpm占用系统资源分析
- 黑马程序员学习笔记——java中的断言