
1.把json数据定义为一个变量
1
2
var json = {"a":1,"b",2}
//这样可以直接调用,数据太多可以放到一个额外的 js 文件上
2.数据写在一个文件上,命名为a.json
1
2
3
4
$.getJson(url,funciton(rs){
//url是文件路径,例如 ../json/a.json
//rs就是返回的json数据了
})
如果数据是后台传过来的
1
2
3
4
5
$.post(url,data,function(rs){
//url是后台controller的方法的路径
//data 是传到后台的json格式的参数,可选
//rs是返回的数据
},"json")//最后这个json不能漏
一、使用js获取接口数据的方法①$get(url,[data],[callback])
url:请求的地址data:请求数据的列表callback:请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个为服务器的状态,是可选参数。
其中服务器返回数据的格式其实是字符串形式,并不是我们想要的JSON数据格式。上例子:
var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php'
$.get(url3,function(data){
alert(data)
})
此时如果对data采用json解析数据,得到的值为undefined。所以我们使用这种get方法获取到的值要是JSON格式,需要定义获取的数据类型为json格式,上例子:
var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php'
$.get(url3,function(data){
$('#result').append('
interval:'+data.name+'
')//此时返回的是JSON格式的内容,例:我们可以使用data.name获取到name字段的值并输出。
}, 'json')
②$post(url,[data],[callback],[type])
post方法中多了一个type:获取数据的类型格式,post其实和get是一样的用法,type不定义,返回的是字符串类型的,定义为json格式,返回的就是json格式的数据,此处可以仿照上面的get方法,把get改成post就搞定了,就不多说了。
函数不需要 return,因为 json 对象会被函数直接修改。
var str1 = {"name": "apple", "sex": "21"}// 参数:prop = 属性,val = 值
function createJson(prop, val) {
// 如果 val 被忽略
if(typeof val === "undefined") {
// 删除属性
delete str1[prop]
}
else {
// 添加 或 修改
str1[prop] = val
}
}
下面为测试
// 无改动,输出 Object {name="apple", sex="21"}console.log(str1)
// 添加属性 color,值为 red
createJson("color", "red")
// 输出 Object {name="apple", sex="21", color="red"}
console.log(str1)
// 修改属性 name 的值为 banana
createJson("name", "banana")
// 输出 Object {name="banana", sex="21", color="red"}
console.log(str1)
// 删除属性 sex
createJson("sex")
// 输出 Object {name="banana", color="red"}
console.log(str1)
函数应该有三个参数的,第一个为 json 对象,但应你要求,只写了两个,所以函数只能用于修改 str1。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)