如何使用node.jsparsingstring到数组?

我得到一个外部Api的JSON响应:

 { "statusCode": 200, "data": { "Response": "R00=03&R01=Invalid User", "TokenStatus": "Used" } } 

但我需要能够parsingdata.Responsestring以确定请求是否成功。 在成功的情况下,string将类似于:

R00 = 00&R01 =已添加余额。 &R02 = 59.00&R03 = 1.00

在失败的情况下,将类似于

R00 = 03&R01 =无效的用户

我需要parsing成一个JS对象,如:

 { R00: 00, R01: "Balance Added. ", R02: "59.00", R03: "1.00" } 

它看起来像是URL编码的,所以我们来试试查询stringparsing器 。

 const querystring = require('querystring'); querystring.decode(data.Response) // { R00: '03', R01: 'Invalid User' } 

你可以使用reduce() :

 var response = { "statusCode": 200, "data": { "Response": "R00=00&R01=Balance Added. &R02=59.00&R03=1.00", "TokenStatus": "Used" } }; var retVal = response.data.Response.split('&').reduce(function(acc, ele) { var x = ele.split('='); acc[x[0]] = x[1]; return acc; }, {}); console.log(retVal); 

您可以查找子stringR01=Balance Added. 在你的回应中:

 data.Response.indexOf('R01=Balance Added.') > 0 

或者,如果你想parsingResponse来将它用于其他目的,我会build议使用node.js中build立的查询string模块

 var object = querystring.decode(data.Response); // object will look like this { R00: '03', R01: 'Invalid User' }