
乱码可能是你显示的问题读的是时候产生的乱码,通过指定显示页面的编码而变回正常的文字,也有可能是文件本身存在乱码也就是这个文件存的时候产生的乱码,这种是比较麻烦的,很可能没法还原了。通常是gba和utf-8之间的转换原因造成的,当然也有可能是其他编码。
你先要取得json的字符串。然后可以用evel函数来将字符串转成json对象就可以用了。关于evel的用法你可以百度一下,这里面说起来复杂。
另外你这里是一个xml文件里面的json数据,你需要先把xml里面的节点读出来。然后在把读出来的json文本编程json对象。既然用了xml,还用json干嘛。通常用xml就不用json了,json用来在多个程序之间传递数据用,而xml通常用来存储成文件形式。
根据返回的字符串可以看出是多个json拼接成的js数组的形式。
如果返回的只是字符串须现将字符串转成js对象。
使用Jquery的$each()方法循环js数组取出每一个json对象的数据。
str = '[{"key":"value","keys":[{"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}],"obj":{"id":1,"msg":"success"}}]';str_json = eval("(" + str + ")");//将字符串转换成js对象
$each(str_json,fucntion(a,b){
alert(a);//d出数组的key
alert(bid);//d出要取出的数据
});
js部分
(function(window,
document)
{
'use
strict';
var
jsonp
=
function(url,
data,
callback)
{
//1、挂载回调函数
var
fnsuffix
=
Mathrandom()toString()replace('',
'');
var
cbFuncName
=
'my_json_cb'
+
fnsuffix;
window[cbFuncName]
=
callback;
//2、将data转换成url字符串的形式
//{id=1,count=4}==>id=1&count=4
var
querystring
=
urlindexOf('')
==
-1
''
:
'&';
//判断url中最后是否有?,没有则为?
for
(var
key
in
data)
{
querystring
+=
key
+
'='
+
data[key]
+
'&';
}
//3、处理url中回调函数
url+=callback=sdgade
querystring
+=
'callback='
+
cbFuncName;
//querystring=id=1&count=4&callback=sdgade
//4、创建一个script标签
var
scriptElement
=
documentcreateElement('script');
scriptElementsrc
=
url
+
querystring;
//5、把script标签放到页面上
documentbodyappendChild(scriptElement);
};
window$jsonp
=
jsonp;
})(window,
document)
在页面中测试
<!DOCTYPE
html>
<html>
<head>
<title>jsonp</title>
</head>
<body>
<div
id="htt"></div>
<script
type="text/javascript"
src=">
以上就是关于js怎么获取.json文件里的数据全部的内容,包括:js怎么获取.json文件里的数据、js解析json文件,获取数据、使用jsonp实现跨域获取数据实例讲解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)