2017-08-18 27 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]) 
相關問題