首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为JSON对象数组(Node.js)

将字符串转换为JSON对象数组(Node.js)
EN

Stack Overflow用户
提问于 2013-07-16 18:07:03
回答 3查看 29.6K关注 0票数 2

我使用的是Node.js和express (3.x)。我必须为mac客户端提供一个API,并从post请求中提取正确的字段。(必须使用request.param ),但是字段应该组合在一起返回到JSON,而不是字符串。

我得到了:

代码语言:javascript
复制
var obj = {
        "title": request.param('title'),
        "thumb": request.param('thumb'),
        "items": request.param('items')
    };

request.param('items')包含一个object数组,但仍然是一个字符串:

代码语言:javascript
复制
'[{"name":"this"},{"name":"that"}]'

我想要追加它,这样它就变成了:

代码语言:javascript
复制
var obj = {
            "title": request.param('title'),
            "thumb": request.param('thumb'),
            "items": [{"name":"this"},{"name":"that"}]
        };

而不是

代码语言:javascript
复制
var obj = {
                "title": request.param('title'),
                "thumb": request.param('thumb'),
                "items": "[{\"name\":\"this\"},{\"name\":\"that\"}]"
            };

有谁能帮我吗?JSON.parse不能解析对象数组,只能解析有效的JSON。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-16 18:12:49

这样如何:

代码语言:javascript
复制
var obj = JSON.parse("{\"items\":" + request.param('items') + "}");
obj.title = request.param('title');
obj.thumb = request.param('thumb');

JSON.stringify(obj);
票数 7
EN

Stack Overflow用户

发布于 2013-07-16 18:17:48

也许我遗漏了一些东西,但它工作得很好:

代码语言:javascript
复制
> a = '[{"name":"this"},{"name":"that"}]';
'[{"name":"this"},{"name":"that"}]'
> JSON.parse(a)
[ { name: 'this' }, { name: 'that' } ]

节点@0.10.13

票数 4
EN

Stack Overflow用户

发布于 2013-12-02 23:26:21

也许你有旧的库原型。当我移除它时,bug已经消失了。

您可以尝试相同的代码。一次在Prototype.js页面上。第二次在没有库的新页面中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17673702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档