Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将字符串从JSON数组转换为另一个数组_Javascript_Arrays_Json - Fatal编程技术网

在javascript中将字符串从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.

我正在尝试移植以下代码以使用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.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文件中命名所有内容。