我有一些返回类似的代码:
body: '[
{
name: "name",
lastname: "lastname"
},
{
name: "name",
lastname: "lastname"
},
{
name: "name",
lastname: "lastname"
}
]'
当然,提取正文是一个简单的object.body
但是,摆脱包裹阵列的''
只会摧毁我。我试着去object.body.slice(1,-1)
摆脱它们,它没有用。我显然没有正确使用该对象。
如何从正文中“提取”数组到可用的数组?
答案 0 :(得分:2)
听起来你想要评估字符串的内容。假设构建此字符串的代码无法实际构建JS对象,您可以使用eval
或Function
生成所需的对象。
var data = eval(string);
请注意,您必须确保字符串的来源安全可靠,否则您可能正在评估 恶意代码 。使用eval
可能会对性能产生影响。
使用Function
是一个微小的更安全,只是因为代码无法访问您的本地变量。它还应该避免eval
的性能成本。
var data = Function("return (" + string + ");")();
虽然有关恶意代码的相同警告。
如果字符串数据是有效的JSON,您可以使用JSON.parse
,但它不是,所以你不能。为了避免安全问题,要么让源提供有效的JSON数据,要么编写自己的最小解析器来解析数据。
答案 1 :(得分:0)
使用有效的JSON字符串,您可以解析具有JSON.parse
的对象的字符串(如果有)。
array = JSON.parse(string);
答案 2 :(得分:0)
你可以使用分割功能然后拿第一个元素,让我说
var a = '[{name: "name",lastname: "lastname"},{name: "name",lastname: "lastname"},{name: "name",lastname: "lastname"}]';
var s = a.split("'");
s [0]将返回所需的结果