2016-05-14 175 views
0

我遇到問題。 我開發了一個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" 
} 

} 

回答

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"} 
+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)'。 –