无法将两个对象与Json.parse和Json.stringify联合起来

时间:2017-08-18 05:09:26

标签: javascript json

我怀疑如何联合对象并在节点js中以明确的响应给出它们。

对象是这样的:

{
    "idP": 1,
    "pasaporteNum": 787643682,
    "fidP": 1,
    "fid_p": 1
}

另一个也是:

{
    "idP": 1,
    "pasaporteNum": 827348,
    "fidP": 1,
    "fid_p": 75683475
}

所以代码类似于:

var a = JSON.stringify(context.instance[0].dataValues)
var b = JSON.stringify(context.instance[2].dataValues)
 res.send('{'+JSON.parse(a+','+b)+'}')

为什么我收到此错误?

 "Unexpected token , in JSON at position 53"

最后我需要这样的东西:

{
    "idP": 1,
    "pasaporteNum": 787643682,
    "fidP": 1,
    "fid_p": 1
},
{
    "idP": 4,
    "pasaporteNum": 456789,
    "fidP": 2,
    "fid_p": 2
}

问候

4 个答案:

答案 0 :(得分:1)

看到你有两个具有相同属性的对象,你可能只想在字符串化之前将它们添加到数组中

var arr = [context.instance[0].dataValues, context.instance[2].dataValues]

res.send( JSON.stringify( arr ) )

答案 1 :(得分:0)

我认为您希望采用JSON格式并从您的API发送,因此您无需JSON.parse(),只需JSON.stringify()

var a = JSON.stringify(context.instance[0].dataValues);
var b = JSON.stringify(context.instance[2].dataValues);
res.send('{' + JSON.stringify(a + ',' + b) + '}');

答案 2 :(得分:0)

使用您的格式,您需要一个数组而不是一个对象。 res.send(' [&#39 + JSON.parse(A +'&#39 + B)+']&#39)

或者更简单,你可以做到



JSON.stringify([context.instance[0].dataValues,context.instance[2].dataValues])




答案 3 :(得分:0)

您不需要使用.stringify().parse(),就像创建数组并发送它一样。

res.send([context.instance[0].dataValues, context.instance[2].dataValues])