如何将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"} 
+0

太感谢你了,你已经是一个很大的帮助。 – Mister98

+0

你现在怎么把json转换成i18n字符串? – Mister98

+0

@LeonardoMidolo 对不起,我帮不了你。将_convert json转换为i18n string_的请求过于模糊和笼统。事实上,你问题中的i18n.map“string”实际上是一个'i18n.map'函数的调用。看来你正在处理与[国际化包](https://github.com/anticoders/meteor-i18n)相关的事情。你可能想阅读它的文档,也许使用它。要从JSON字符串中获取对象,请使用'JSON.parse(string)'。 –