[Jquery] use $getJSON

Json的格式

J森、J桑,傻傻分不清楚
JSON全名:JavaScript Object Notation
就是在JavaScript之中,表示物件的一種格式

重點概念,注意事項

物件(object)用大括號 { }
陣列(array)用中括號 [ ]
整個JSON格式文件{}之中,是不能使用註解的
json object的鍵值(key)(value),建議要用字串做鍵值
記住最後一個key,value 不要再加上 “,
假設你是個初學,不知道什麼是陣列、字串、數字、物件、甚至布林(看這

1
2
//錯誤範例,key 要用" "包起來,讓他成為字串
{0:"hell", 1:"kurt", 2:"jimmy", 3:"Nic",key:"value"}
1
{"0":"hell", "1":"kurt", "2":"jimmy", "3":"Nic"}

encodeURIComponent V.S. decodeURIComponent

一個是加密一個是解密,在簡單的說,把一堆東西轉成 json 跟 把 json 轉成一堆東西
by NicLin

encodeURIComponent
將資料物件轉換為 JavaScript 物件標記法 (JSON) 格式的字串
decodeURIComponent
將 JavaScript 物件標記法 (JSON) 格式的字串轉換為資料物件。
上網搜尋隨便都有線上 tool(‘http://www.url-encode-decode.com/')

然後有一篇stackoverflow 有提到encodeURI vs. encodeURIComponent的差別
這邊不多說,有興趣可以再討論

$getJSON 使用

1
2
3
4
5
6
7
8
$.getJSON( "test.js", { name: "John", time: "2pm" } )
.done(function( json ) {
console.log( "JSON Data: " + json.users[ 3 ].name );
})
.fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err );
});

我會建議大家直接複製上方,去做修改
使用.fail()可以在debug 上有更好的提示!
.done() .fail(),當然還有常見的.each()的用法
解析一下

1
2
3
4
5
6
var url="ajax/test.json"
$.getJSON( url, function( data ) {
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
});

Ref

w3c.example
第一篇
api.jQuery.getJSON()
print-pretty-json-formate

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×