如何使用node.jsparsingstring到数组?
我得到一个外部Api的JSON
响应:
{ "statusCode": 200, "data": { "Response": "R00=03&R01=Invalid User", "TokenStatus": "Used" } }
但我需要能够parsingdata.Response
string以确定请求是否成功。 在成功的情况下,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' }
- 最常用的方法来生成PDF报告(JavaScript,node.js)?
- 在另一个函数中创buildMongoose连接时,不会调用查询callback
- gulp-sourcemaps保留中间文件
- 在本地和全局安装gulp插件
- 用子项目构build一个吞噬项目 – 我怎样才能使用全局和/或要求 – 全部在多个子项目上运行任务?
- async.whilst中的callback和错误是什么?
- Node.js MYSQL来检测Query的INSERT / UPDATE完整性吗?
- Node.js分离的subprocess被调用为交互式前台进程
- Node.jsasynchronous库比较 – Q vsasynchronous