我有以下从服务器返回的 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]
]"
我只需要将字符串放入数组中,并使用 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]
]`));
请注意,如果您在源代码中给出字符串,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]);
关于javascript - 字符串到 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51638578/