Ama*_*med 0 javascript arrays string json
我有以下JSON对象数组,我从服务器返回.然而,当服务器发送回响应时,数据被包含在内"",然后使javascript函数成为字符串,而不是数组.
"[
[32.361346650846805,50.90932315437885],
[32.36743646734031,50.95189517586323],
[32.35467638118774,50.95876163094135],
[32.342494619322636,50.904516635824166],
[32.36279664436138,50.90039676277729],
[32.380194752587755,50.899023471761666],
[32.3648265962154,50.91481631844135],
[32.361346650846805,50.90932315437885]
]"
Run Code Online (Sandbox Code Playgroud)
我只需要将String转换为数组并使用for循环迭代数组中的元素集.但是,由于它被处理为字符串,因此无法使用for循环进行迭代.
任何帮助?
您只需要执行此操作JSON.parse(),几乎所有JavaScript解析器都支持此操作:
console.log(JSON.parse(`[
[32.361346650846805,50.90932315437885],
[32.36743646734031,50.95189517586323],
[32.35467638118774,50.95876163094135],
[32.342494619322636,50.904516635824166],
[32.36279664436138,50.90039676277729],
[32.380194752587755,50.899023471761666],
[32.3648265962154,50.91481631844135],
[32.361346650846805,50.90932315437885]
]`));Run Code Online (Sandbox Code Playgroud)
请注意,如果您在源代码中提供它们,JavaScript可能不喜欢在字符串中使用换行符.如果原始字符串确实有换行符,那就完全没问题了.这就是我在这里使用模板文字的原因.
// Say you have your string here.
var str = `[
[32.361346650846805,50.90932315437885],
[32.36743646734031,50.95189517586323],
[32.35467638118774,50.95876163094135],
[32.342494619322636,50.904516635824166],
[32.36279664436138,50.90039676277729],
[32.380194752587755,50.899023471761666],
[32.3648265962154,50.91481631844135],
[32.361346650846805,50.90932315437885]
]`;
// Convert to array.
var arr = JSON.parse(str);
// Loop throught the array.
for (var i = 0; i < arr.length; i++)
console.log(arr[i]);Run Code Online (Sandbox Code Playgroud)