js 读取 json文件

JavaScript013

js 读取 json文件,第1张

如果要使用js读取json文件,那么ajax操作是必须的了。原生ajax有点麻烦,我想你们项目一定用了什么js库,这里给个jquery的例子:

$.get('xx.json路径', function(data){

    alert(data) // data即为json文件内容里的json数据

}, 'json')

如果把这个文件的内容读取为纯文本,可以修改$.get的最后一个参数json为text,或者删掉这个参数,默认也是text。

//获取json,这里用的是jquery的ajax方法,只是意思意思,这里可以替换为任何ajax请求

function getData(){

$.ajax({

url: "xxx.php",

success: function(jsondata){

output(jsondata)

}

})

}

//函数

function output(json){

//转换字符串为对象

var Data = eval('(' + json + ')')

var html = ''

for(var i=0i<Data.lengthi++){

//具体键值根据你返回的字符串来

html += '名字' + Data[i].name + ' 年龄' + Data[i].age

}

//插入到元素

document.getElementById('el').innerHTML = html

}

//每隔10秒执行

setTimeout(getData, 10000)

乱码可能是你显示的问题【读的是时候产生的乱码】,通过指定显示页面的编码而变回正常的文字,也有可能是文件本身存在乱码【也就是这个文件存的时候产生的乱码,这种是比较麻烦的,很可能没法还原了】。通常是gba和utf-8之间的转换原因造成的,当然也有可能是其他编码。

你先要取得json的字符串。然后可以用evel函数来将字符串转成json对象就可以用了。关于evel的用法你可以百度一下,这里面说起来复杂。

另外你这里是一个xml文件里面的json数据,你需要先把xml里面的节点读出来。然后在把读出来的json文本编程json对象。既然用了xml,还用json干嘛。通常用xml就不用json了,json用来在多个程序之间传递数据用,而xml通常用来存储成文件形式。