1. 程式人生 > >將PHP陣列賦值給JS通過php系統函式json_encode()來實現

將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>