我正在使用的API使用base64編碼的ruby哈希(類似於json對象,但專用於ruby)迴應,該哈希已轉換爲在檢索到編碼字符串base64編碼需要替代eval()和替換字符串值的更好方法
,字符串從Javascript解碼時我得到了相同的形狀,因爲它起源於
// Decoded example String
"{:example=>'string',:another_example=>'string'}"
我能夠解析出服務器上的紅寶石字符串的字符串使用字符串替換和eval()ruby字符串到JSON對象,但我知道eval()是邪惡的。此外,沒有辦法處理將來可能彈出的任何其他鍵值對。
這應該如何重寫沒有eval和沒有直接的字符串替換?
var storedToken = base64url.decode(window.localStorage.authtoken).replace(':example=>', 'example:').replace(':another_example=>', 'another_example:')
var parsedTokenString = JSON.stringify(eval('(' + storedToken + ')'))
var newJsonObject = JSON.parse(parsedTokenString)
@SiddharthNand這裏沒有什麼比這裏更多的只是標題 – tsh
改了標題以防萬一。 – aronlmin
如果服務器在你的控制之下,通過'json'包中的'.to_json'將它轉換爲json應該是一個好主意。 – tsh