将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( echo $json ?>); alert(json.extTitle.message+ ' '+json.extName.message);
在messages.php
里面:
"hai", "no"=>"iie" ); $messages = json_encode($messages); echo "window.messages = $messages"; ?>
在index.html
:
只要您告诉浏览器将php文件解释为javascript文件,您就可以回显任何想要的内容。