【问题标题】:String to JSON Array字符串到 JSON 数组
【发布时间】:2018-08-01 16:53:01
【问题描述】:

我有以下从服务器返回的 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]
]"

我只需要将 String 放入一个数组并使用 for 循环迭代数组中的一组元素。但是,由于它被视为字符串,因此无法使用 for 循环进行迭代。

有什么帮助吗?

【问题讨论】:

  • JSON.parse 可以成为你的朋友...
  • 你是如何从服务器获取这个 JSON 的?通过 ajax?
  • var result = JSON.parse(str)
  • 那不是JSON,是多维数组。

标签: javascript arrays json string


【解决方案1】:

您只需要通过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]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多