在javascript中将字符串从JSON数组转换为另一个数组
我正在尝试移植以下代码以使用JSON文件 目前,我已设法将“单位”和“因素”部分纳入其中:在javascript中将字符串从JSON数组转换为另一个数组,javascript,arrays,json,Javascript,Arrays,Json,我正在尝试移植以下代码以使用JSON文件 目前,我已设法将“单位”和“因素”部分纳入其中: 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.
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);
不幸的是,当我这样做时,单元[0][0]会出现同样的结果
"Meter/sq.sec (m/sec^2)", "Foot/sq.sec (ft/sec^2)", "G (g)", "Galileo (gal)", "Inch/sq.sec (in/sec^2)"
如何使其成为一个数组?谢谢 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;
为什么要先将其存储为字符串?如果您使用javascript执行此操作,您可以直接存储对象,而无需将对象包装为字符串。正如@Jhect所说,使用对象。我可以举一个例子说明在这种情况下如何执行此操作吗?我对JS和JSON文件的理解非常有限。如果你继续用两种不同的方式拼写加速,你的代码中会有一些问题。是的,我当然知道。谢谢你:谢谢!我的印象是,出于某种奇怪的原因,我不得不在JSON文件中命名所有内容。