2017-05-03 73 views
0

響應我有一個響應:如何轉換到全JSON格式

{ 
    "Status": 200, 
    "Email": "[email protected]", 
    "Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]" 
} 

我想解決這個問題的一部分:

"Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]" 

所以它看起來像這樣更好:

{ Status: 200, 
    Email: '[email protected]', 
    Values: '{"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]}' } 

我正在使用節點js。

​​

請求爲:

email:[email protected] 
values:{"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]} 

後調用

問候

回答

1

如果您需要使用req.body.values是更好地使用JSON.parse()方法是這樣的:

var val = JSON.parse(req.body.values); 

然後你的最終響應的字符串應該是字符串化使用JSON.stringify()方法:

var result={Status: 200, 
      Email: "[email protected]", 
      Values: val};  
const response = JSON.stringify(result); 

請看看這個jsfiddle

1

不知道爲什麼你的數據被包裝成數組和字符串化,但這是另一個故事。

所以,你需要解析一個json字符串,並獲得第一個數組元素。就像這樣:

const response = { 
 
    "Status": 200, 
 
    "Email": "[email protected]", 
 
    "Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]" 
 
}; 
 

 
// now it's parsed and unescaped like - {"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]} 
 
const values = JSON.parse(response.Values)[0]; 
 

 
response.Values = values; 
 

 
// From now 'response' object will be as you want