将JSON从php传递给javascript

我想本地化我的webapp。 由于不推荐仅通过javascript进行本地化,我认为使用php将是另一种选择。

所以用php我读了一个存储所有本地化数据的messages.json文件。

 $json = file_get_contents("_locales/en/messages.json"); 

在我的webapp的标题中,我根据用户的浏览器语言生成一些带有php的javascript。

 echo "var localeObj = " . $json . ";"; 

所以这只是一个var,它保存了m essages.json文件中的所有数据

 { "extTitle": { "message": "Test1" }, "extName":{ "message": "Test2" } } 

现在我希望能够从json访问每个项目

 var title = getItem("extTitle"); 

它返回Test1 。 知道怎么做吗?

我不是很熟悉json但是如果我只是提醒localeObj它只给我[object Object]。

 var getItem = function(item) { return localObj[item].message; }; 

你总是可以封装你的i18n字符串……

 (function() { var localObj = { ... }; window.getItem = function(item) { return localObj[item].message; }; })(); 

这样,没有其他变量可能破坏你的localObj

您使用数组语法[]或点语法. ,访问javascript对象属性。

例:

 localeObj["extTitle"]; localeObj.extTitle; 

我建议阅读这样的东西,以便更加熟悉JSON。

你可以像这样初始化javascript变量。

 var json = eval(); alert(json.extTitle.message+ ' '+json.extName.message); 

messages.php里面:

 "hai", "no"=>"iie" ); $messages = json_encode($messages); echo "window.messages = $messages"; ?> 

index.html

       

只要您告诉浏览器将php文件解释为javascript文件,您就可以回显任何想要的内容。