首页 > 解决方案 > 如何将 javascript 数组转换为 json 格式以作为来自 REST api 的响应

问题描述

I am trying to figure out how to take an array of arrays and convert it to a json string to return via a REST api.

My server gets records from a database. Each record is in the form:

    {"user":"some name","age":number}

我需要以 json 格式返回数据,以便 REST 规范有效。有时我得到一条记录来返回,有时我得到多条记录。下面是我用来测试转换为 json 格式的语法的示例脚本。

var resultSet = [];
resultSet.push({"user":"John Doe","age":43});
resultSet.push({"user":"Jane doe","age":29});
var myJson = JSON.parse(resultSet);

当我使用 nodejs 运行此代码时,出现以下错误:

SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)

任何建议将不胜感激。

标签: javascriptarraysjson

解决方案


JSON.parse需要一个字符串。您正在传递一个数组。

这是有效的,因为输入是一个字符串:

JSON.parse('[{"foo": "bar"}]')

这不起作用,因为输入是一个数组:

JSON.parse([{"foo": "bar"}])

你想返回一个数组还是一个字符串?如果你试图返回一个字符串,那么你应该JSON.stringify像这样使用:

JSON.stringify([{"foo": "bar"}])

推荐阅读