如何将i18n.map转换为json对象

时间:2016-05-14 16:01:10

标签: javascript jquery json

我有问题。 我开发了一个将json文件转换为表格的Web应用程序。 问题出现时,而不是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"
}

}

1 个答案:

答案 0 :(得分:0)

如果您能够将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"}