【问题标题】:Turn string from JSON array into another array in javascript将字符串从 JSON 数组转换为 javascript 中的另一个数组
【发布时间】:2014-12-07 22:31:37
【问题描述】:

我正在尝试移植以下代码以使用 JSON 文件 http://malamas.com/jsuc/jsuc.html 目前我已经设法采用了“单位”和“因素”部分:

property[0] = "Acceleration";
unit[0] = new Array("Meter/sq.sec (m/sec^2)", "Foot/sq.sec (ft/sec^2)", "G (g)", "Galileo (gal)", "Inch/sq.sec (in/sec^2)");
factor[0] = new Array(1, .3048, 9.806650, .01, 2.54E-02);

并将它们放入 JSON 行:

var text = '{"Accelleration": { "unit":"\\"Meter/sq.sec (m/sec^2)\\", \\"Foot/sq.sec (ft/sec^2)\\", \\"G (g)\\", \\"Galileo (gal)\\", \\"Inch/sq.sec (in/sec^2)\\"", "factor":"1, .3048, 9.806650, .01, 2.54E-02"}}'
var obj = JSON.parse(text);

我可以像这样输出字符串

"Meter/sq.sec (m/sec^2)", "Foot/sq.sec (ft/sec^2)", "G (g)", "Galileo (gal)", "Inch/sq.sec (in/sec^2)"

但我希望能够通过这样做将其输入到顶部代码中:

property[0] = "Acceleration";
unit[0] = new Array(obj.Accelleration.unit);
factor[0] = new Array(obj.Accelleration.factor);

不幸的是,当我这样做时,unit[0][0] 会出现同样的情况;

"Meter/sq.sec (m/sec^2)", "Foot/sq.sec (ft/sec^2)", "G (g)", "Galileo (gal)", "Inch/sq.sec (in/sec^2)"

我怎样才能让它像一个数组一样工作?谢谢!

【问题讨论】:

  • 为什么要先将其存储为字符串?如果您在 javascript 中执行此操作,则可以直接存储对象,而无需将对象包装在字符串中。
  • 正如@Jhect 所说,使用一个对象。
  • 我能举例说明在这种情况下如何做到这一点吗?我对 JS 和 JSON 文件的理解极其有限。
  • 如果你一直用两种不同的方式拼写acceleration,你的代码会出现一些问题。
  • 是的,我确定。谢谢你:D

标签: javascript arrays json


【解决方案1】:

您在 JSON 中拥有的是一个包含某些字符串表示形式的字符串。由于该表示不是 JSON,因此您无法直接解析它(但您可以通过在其周围添加括号将其转换为 JSON)。

不要让一个包含字符串的字符串,而是让它成为一个包含字符串的数组。那么当你解析它时,你已经有了数组:

var text = '{"Accelleration": { '+
  '"unit": ["Meter/sq.sec (m/sec^2)", "Foot/sq.sec (ft/sec^2)", "G (g)", "Galileo (gal)", "Inch/sq.sec (in/sec^2)" ], '+
  '"factor": [ 1, .3048, 9.806650, .01, 2.54E-02 ]'+
  '}}'
var obj = JSON.parse(text);

现在您有了数组,除了从对象中获取它们之外,您无需做任何其他事情:

unit[0] = obj.Accelleration.unit;
factor[0] = obj.Accelleration.factor;

【讨论】:

  • 谢谢!我的印象是,出于某种奇怪的原因,我必须在 JSON 文件中命名所有内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2020-04-27
相关资源
最近更新 更多