【发布时间】:2013-11-18 15:12:40
【问题描述】:
我正在将 Ruby 数组转换为 JSON,保存到 MySQL,然后加载到 KnockoutJS。问题是该数组仍然是一个 JSON 字符串,我无法对其进行迭代。
tags = `/usr/bin/svn ls #{svn_repo_url}`.split("/\n")
puts tags.inspect
["1.0.0", "1.0.1", "1.0.10", "1.0.11", "1.0.12", "1.0.13", "1.0.14", "1.0.15", "1.0.16", "1.0.2", "1.0.3", "1.0.4", "1.0.5", "1.0.6", "1.0.7", "1.0.8", "1.0.9"]
puts tags.to_json
["1.0.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","1.0.15","1.0.16","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"]
这被保存到 MySQL,然后被加载到 KnockoutJS,但它仍然是一个字符串,所以我无法在 foreach 循环中迭代它。
我尝试做ko.mapping.toJS(myString) 和ko.toJSON(myString),但到目前为止没有运气并且无法转换为我可以迭代的实际数组或对象
我在这里做错了什么?
谢谢
更新:已解决 eval(myString)
【问题讨论】:
-
如果可以,不要使用 eval,使用 JSON.parse,正如 sporkydorky 所说:stackoverflow.com/questions/86513/…
-
@pax162:我试过了,但它抛出了
Message: Unexpected end of input -
您确定该字符串是有效的 JSON 吗?你用正确的引号括起来了吗?
-
@pax162:我认为是的。如果它无效
eval()将无法正常工作,对吗?加上它相当简单的平面数字数组。那里没有太大的错误空间...... -
值在 html/js 文件中的外观如何?在某些时候,你必须有一些 var x = "your_array"。那里看起来怎么样?
标签: javascript ruby arrays json knockout.js