如何分解字符串中的对象数组

时间:2017-08-20 19:27:46

标签: javascript

我有一些返回类似的代码:

body: '[
    {
        name: "name",
        lastname: "lastname"
    },
    {
        name: "name",
        lastname: "lastname"
    },
    {
        name: "name",
        lastname: "lastname"
    }
]'

当然,提取正文是一个简单的object.body但是,摆脱包裹阵列的''只会摧毁我。我试着去object.body.slice(1,-1)摆脱它们,它没有用。我显然没有正确使用该对象。

如何从正文中“提取”数组到可用的数组?

3 个答案:

答案 0 :(得分:2)

听起来你想要评估字符串的内容。假设构建此字符串的代码无法实际构建JS对象,您可以使用evalFunction生成所需的对象。

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]将返回所需的结果