我查看了Yahoo! Messenger API文档,了解如何获取访问令牌,我发现了这一点:
电话看起来像这样:
https://login.yahoo.com/WSLogin/V1/get_auth_token?&login=username&passwd=mypassword&oauth_consumer_key=consumerkey
此调用的结果是单个值,
RequestToken
:
RequestToken=jUO3Qolu3AYGU1KtB9vUbxlnzfIiFRLP...
此令牌随后用于第二个请求,该请求将PART交换为OAuth访问令牌。您可以在此处找到有关获取访问令牌的标准方法的更多信息。
我猜结果是标准结果,但我不知道这是什么类型的数据。我的意思是它不是XML或JSON。
我想将这样的字符串转换为JSON:
{
RequestToken: "jU0..."
}
是否有标准的转换器/解析器或者我必须构建一个?
此外,另一个请求可能如下所示:
Error=MissingParameters
ErrorDescription=Sorry, try again with all the required parameters.
我希望将其转换为JSON:
{
Error: "MissingParameters",
ErrorDescription: "Sorry, try again with all the required parameters."
}
构建这样的解析器非常容易,但我不想重新发明轮子。
答案 0 :(得分:0)
我决定写自己的功能。如果有一个标准算法来解析这样的字符串,请留下评论。
/*
* Transform a string like this:
*
* "Field1=123
* Field2=1234
* Field3=5"
*
* into an object like this:
*
* {
* "Field1": "123",
* "Field2": "1234",
* "Field3": "5",
* }
*
* */
function parseResponse (str) {
// validate the provided value
if (typeof str !== "string") {
throw new Error("Please provide a string as argument: " +
JSON.stringify(str));
}
// split it into lines
var lines = str.trim().split("\n");
// create the object that will be returned
var parsedObject = {};
// for every line
for (var i = 0; i < lines.length; ++i) {
// split the line
var splits = lines[i].split("=")
// and get the field
, field = splits[0]
// and the value
, value = splits[1];
// finally set them in the parsed object
parsedObject[field] = value;
}
// return the parsed object
return parsedObject;
};