將PHP陣列賦值給JS通過php系統函式json_encode()來實現
示例如下:
<script type="text/javascript" language="javascript">var languages = {cn:{
lang:'ch',
name:"中文"
},
en:{
lang:"英文",
name:"en"
}
};
document.write(languages.cn.name);
</script>
=====================================================================
請問有沒有詳細的js讀取json的例子方法
//根據city獲得name
function getNameByCity(city)
{
var cityName =
{
"0556":"安慶市",
"0372":"安陽市",
};
return cityName[city];
}
(參考) =====================================================================
js 中讀取JSON的方法探討
js讀取JSON的方法我接觸到的有兩種:
方法一:函式構造定義法返回
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//轉換後的JSON物件
alert(obj.name);//json name
方法二:js中著名的eval函式
var strJSON = "{name:'json name'}";//得到的JSON
var obj = eval( "(" + strJSON + ")" );//轉換後的JSON物件
alert(obj.name);//json name
第二種方法需要注意的是,物件表示式{'name':'json name'}必須用“()”擴住,否則
var strJSON = "{name:'json name'}";
var obj = eval(strJSON);
alert(obj.constructor);//String 建構函式
alert(obj.name);//undefine
必須把物件表示式擴起來eval執行才能生成一個匿名物件!
(參考)--------------------------------------------------------------------------
下面json官方的js,結合ajax來讀取解釋json結構的資料。
<script>
//直接宣告json資料結構
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
alert(myJSONObject["bindings"][0].method); //這裡讀取節點bindings中第一個陣列位置method的值
也可以使用迴圈來讀取
for(var key in myJSONObject){
alert(myJSONObject[key][0].regex)
}
</script>
下面是json官方的js檔案
<script src="json2.js"></script>
// rtval的值:{"digg":[{"diggnum":"12","offnum":"0","pageviews":"680","username":"dodo"}]}
function callback(rtval)
{
var myJSONObject2=eval("("+rtval+")");
alert(myJSONObject2["digg"][0].diggnum)
}
</script>