JSON不是JavaScript對象,jsonjavascript對象
一篇短小精悍的文章,我覺得不錯就翻譯了。
原文作者 Fizer Khan
原文地址 http://www.fizerkhan.com/blog/posts/JSON-is-not-Javascript-Object.html
很多人都把JSON當作JavaScript對象,但它根本不是。JSON只是一種靈感來自JavaScript對象結構的字串標記法。JSON被設計得簡單鬆散,用來在伺服器和瀏覽器之間傳輸資料。因為它的簡潔性,也在瀏覽器和伺服器之外的其他應用中被使用。
我嘗試拷貝一些JavaScript對象並發送到基於JSON的書籤Web伺服器,但是它不工作。為什嗎?看看我要發送的JavaScript對象。
{ name : "why this kolaveri di", url : "http://www.youtube.com/watch?v=YR12Z8f1Dh8", singer: "Dhanush", movie: "3", music : "Anirudh Ravichandran", views : 10000000, // Adding this for testing purpose play : function() { },}
發送之後,從伺服器返回這麼一個錯誤:”Unexpected token n“(用NodeJS的Express架構發送),這表明我發送的不是合法的JSON。為找到原因,我去讀了Douglas Crockford寫的JSON spec 之後終於明白了:
我把它改成正確格式:
{ "name" : "why this kolaveri di", "url" : "http://www.youtube.com/watch?v=YR12Z8f1Dh8", "singer": "Dhanush", "movie": "3", "views" : 10000000, "music" : "Anirudh Ravichandran"}
我認為學習JSON標記法是非常重要的,因為Web開發裡的很多設定檔(package.json, bower.json)都是JSON格式的。所以每一位Web開發人員必須理解JSON。
Happy coding and Have a nice day.
javascript怎將Array對象轉化為json格式的字串(不是轉化為json對象)?
你可以試試這個:
<script>
var arr = ["red","blue","yellow"]
var s = obj2str(arr);
document.write(s);
function obj2str(obj) {
var ret = [];
for (var i = 0,len = obj.length; i < len; i++) {
ret.push(obj[i]);
}
return '[' + ret.join(',') + ']';
}
</script>
結果輸出:
[red,blue,yellow]
javascript怎擷取json對象
js解析json串,並插入html
var popcity = '{$popcity}';
popcity = eval(popcity);
var list = '';
for(var i = 0;i<popcity.length;i++){
list += '<option value="'+popcity[i].cid+'">'+popcity[i].name+'</option>'
}
<tr><td class="Tname1"> 負責地區:</td><td class="Tinfo1"> <select name="dealcity" class="dealcity" id="dealcity"><option value="">'+infor.city+'</option><option value="0">全部</option>'+list+'</select></td></tr>
jquery同樣有可以解析json的辦法,並且相對安全,
var obj = jQuery.parseJSON('{"name":"John"}');
上面是接收到json以後js讀取json串的方法,看是否滿足你的提問,有疑問可以找我。