如何将i18n.map转换为json对象
问题描述:
我遇到问题。 我开发了一个web应用程序,将json文件转换为表格。 问题出现的时候,而不是JSON我有一个这样的文件:如何将i18n.map转换为json对象
i18n.map("it", {
errors: {
"cannot.fetch.credit":"Ops... non riesco a leggere il credito.",
"not.enough.credit.to.buy":"Non hai abbastanza credito per comprare questo biglietto."
},
status: {
title: "Il tuo stato",
scanqrbus: "Inquadra il QR code all'interno del bus",
tickets: {
title: "Biglietto"
}
},
offline: {
connectionless: "Connessione assente",
reconnect: "Riconnetti",
nostart: "Puoi prenotare biglietti solo quando la connessione è attiva",
nosignup: "Connessione assente"
}});
有一种方法,以该文件类型转换在这样使用JavaScript一个JSON?
{
"errors": {
"cannot.fetch.credit":"Ops... non riesco a leggere il credito.",
"not.enough.credit.to.buy":"Non hai abbastanza credito per comprare questo biglietto."
},
"status": {
"title": "Il tuo stato",
"scanqrbus": "Inquadra il QR code all'interno del bus",
"tickets": {
"title": "Biglietto"
}
},
"offline": {
"connectionless": "Connessione assente",
"reconnect": "Riconnetti",
"nostart": "Puoi prenotare biglietti solo quando la connessione è attiva",
"nosignup": "Connessione assente"
}
}
答
如果您能够将i18n.map文件加载到字符串中,则可以使用以下函数。
使用此功能时应该非常小心。它使用eval
并将执行传递给它的任何代码作为参数。
function i18nToJSON (i18nstring) {
var i18n = {};
i18n.map = function (lang, obj) {
return JSON.stringify(obj);
};
return eval(i18nstring);
}
使用例:
var x = 'i18n.map("it", {a: "123", b: "456"});';
var JSONstring = i18nToJSON(x);
console.log (JSONstring); // {"a":"123","b":"456"}
太感谢你了,你已经是一个很大的帮助。 – Mister98
你现在怎么把json转换成i18n字符串? – Mister98
@LeonardoMidolo 对不起,我帮不了你。将_convert json转换为i18n string_的请求过于模糊和笼统。事实上,你问题中的i18n.map“string”实际上是一个'i18n.map'函数的调用。看来你正在处理与[国际化包](https://github.com/anticoders/meteor-i18n)相关的事情。你可能想阅读它的文档,也许使用它。要从JSON字符串中获取对象,请使用'JSON.parse(string)'。 –