解析HTTP响应内容字符串

parse http response content string

本文关键字:字符串 响应 HTTP 解析      更新时间:2023-09-26

我在Meteor和我做一个HTTP javascript工作。获取对API的请求并接收响应res = {..., content: "access_token=4h378fi243h085giouf245&expires=5180430", data=null}。如您所见,res.content是一个字符串,但它实际上代表了一个漂亮的JSON对象{access_token: 4h378fi243h085giouf245, expires: 5180430}

是否有一个流星或Javascript包/简单的解决方案,把字符串变成那个对象?

(我见过一些手动字符串解析解决方案,但这似乎很粗糙,这似乎是流星或Javascript可以为您提供的。)

编辑:做JSON.parse(res.content)实际上是我尝试的第一件事,但它给了我'意外的令牌a',我从'access_token'猜测。为什么这行不通呢?

它实际上不是JSON,它是一个URL参数字符串。

var result = {};
res.content.split("&").forEach(function(part) {
  var item = part.split("=");
  result[item[0]] = decodeURIComponent(item[1]);
});
result = JSON.parse(result);

这里的所有答案都忘记了res.content不是JSON,而是一个查询字符串。关于如何获得值,请参阅以下问题:如何在JavaScript中获得查询字符串值?

我还创建了一个名为Cerealizer的JavaScript类库,它将查询字符串解析为对象。我相信github搜索也可以拉出其他人。

var parser = new Cerealizer.QueryString();
res.content = parser.deserialize(res.content);

JSON.parse应该做你想做的事。