Javascript 将字符串转换为哈希值

标签 javascript json hash

我在 JavaScript 中将字符串转换为哈希值(实际上是嵌套哈希值的哈希值)时遇到问题。

我想转换以下字符串:

"{'btc_usd': {'price': 376.2, 'volume': 42812.69, 'change': -0.5},'btc_cny': {'price': 2519.39, 'volume': 67148.51, 'change': -85.13},'ltc_usd': {'price': 3.068, 'volume': 4735.55, 'change': -0.58},'btc_ltc': {'price': 0.00805433, 'volume': 153.33, 'change': -0.76},'btc_eth': {'price': 0.00660196, 'volume': 6428.98, 'change': 5.87}}"

我想这样做,以便我可以执行 hash['btc_usd']['price'] 并获得 376.2。

我该怎么做?

这是我尝试过的,但它似乎没有运行:

var string="{'btc_usd': {'price': 376.2, 'volume': 42812.69, 'change': -0.5},'btc_cny': {'price': 2519.39, 'volume': 67148.51, 'change': -85.13},'ltc_usd': {'price': 3.068, 'volume': 4735.55, 'change': -0.58},'btc_ltc': {'price': 0.00805433, 'volume': 153.33, 'change': -0.76},'btc_eth': {'price': 0.00660196, 'volume': 6428.98, 'change': 5.87}}"
var results=JSON.parse(string);

最佳答案

为什么不直接使用 JSON?

var string = "{'btc_usd': {'price': 376.2, 'volume': 42812.69, 'change': -0.5},'btc_cny': {'price': 2519.39, 'volume': 67148.51, 'change': -85.13},'ltc_usd': {'price': 3.068, 'volume': 4735.55, 'change': -0.58},'btc_ltc': {'price': 0.00805433, 'volume': 153.33, 'change': -0.76},'btc_eth': {'price': 0.00660196, 'volume': 6428.98, 'change': 5.87}}";
string = "hash = " + string + ";";
eval(string);

console.log(hash.btc_usd.price);

它非常简单,但它带有价格标签:如果您不知道字符串的确切来源,例如:您没有自己生成它,则 eval() 是危险的。它也很昂贵:如果您想在数千个或更多条目的循环中使用它,您将看到一些时间流逝。

关于Javascript 将字符串转换为哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106086/

相关文章:

javascript - 如何获取键值对对象中的最后一个键

javascript - 使用 jquery.map() 进行动态映射

arrays - 数组的perl散列

algorithm - 哈希表与树

perl - XML::Dumper 在输出中使用错误的哈希引用

javascript - 如何解析 form[0].submit 不是函数(...)

javascript - 0x8000ffff JavaScript 运行时错误 意外调用方法或属性访问

javascript - Jade 模板引擎无法将 <p> 标记添加到 div 内部

ios - 从 json 中提取问题

c# - 在 C# 中处理字符串化的 JS 对象