2017-08-18 25 views
0

我对如何联合对象并在节点js中给出明确响应方面存在疑问。无法将两个对象合并到Json.parse和Json.stringify

目的是这样的:

{ 
    "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 
} 

问候

+1

我想你需要'res.send([context.instance [0] .dataValues,context.instance [2] .dataValues])' – Satpal

+1

是最短的正确答案 – arnoldssss

+0

尽量只'的console.log (a +','+ b)',你应该看到错误在哪里,为什么它不是一个有效的json对象。 – ptpaterson

回答

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) + '}'); 
1

看到,因为你有相同属性的两个对象,你可能只是想字符串化

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

res.send(JSON.stringify(arr)) 
0

与您的格式之前添加这些到一个数组,你想要一个数组,而不是一个对象。 res.send( '[' + JSON.parse(A +”, '+ B)+'] ')

或简单的,你可以做

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

0

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

res.send([context.instance[0].dataValues, context.instance[2].dataValues]) 
相关问题