如何使用node.js将字符串解析为数组?

时间:2017-09-28 15:36:38

标签: javascript node.js parsing

我从外部Api获得JSON回复:

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

但我需要能够解析data.Response字符串以确定请求是否成功。如果成功,字符串将类似于:

  

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

如果失败,它将类似于

  

R00 = 03& R01 =无效用户

我需要将它解析为JS对象,如:

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

3 个答案:

答案 0 :(得分:4)

看起来它是由网址编码的,所以让我们试试query string parser

const querystring = require('querystring');

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

答案 1 :(得分:2)

您可以使用reduce()

{
 "key":"value",
 "key2":"value2"
}

答案 2 :(得分:1)

您可以在响应中查找子字符串R01=Balance Added.

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

或者如果你想解析Response以将其用于其他目的,我建议使用node.js中内置的querystring模块

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