如何解析 Javascript 中的 AppsFlyer 转化数据?
How to parse AppsFlyer Conversion Data in Javascript?
如何解析此响应:
{af_sub1=1.5, af_deeplink=true, campaign=None, media_source=None,
install_time=2018-05-08 03:34:34, af_status=Non-organic, path=,
scheme=, host=}
作为以下代码的结果:
var onSuccess = function(result) {
console.log(result);
};
window.plugins.appsFlyer.initSdk(options,onSuccess,onError);
它看起来像 JSON,但使用 =
而不是 :
,然后我尝试使用 result.af_sub1
和 result["af_sub1"]
来解析它,两者 return undefined
您可以先转换响应以符合 JSON,然后使用 JSON.parse
解析它。请参阅下面的代码段。请注意,所有数据类型都是字符串,您需要自己处理数据类型转换。 IE。 af_deeplink
不会是布尔值。
let result = "{af_sub1=1.5, af_deeplink=true, campaign=None, media_source=None,install_time=2018-05-08 03:34:34, af_status=Non-organic, path=, scheme=, host=}";
let parseResponse = (res) => JSON.parse(res.replace(/([^,\s\{=]+)=([^,]*)(?=,|\})/gi, '"" : ""'));
let obj = parseResponse(result);
console.log(typeof obj); // object
console.log(obj.af_sub1); // 1.5
PS:使用正则表达式的详细解释请参考我在regex101.com
上创建的the snippet
如何解析此响应:
{af_sub1=1.5, af_deeplink=true, campaign=None, media_source=None, install_time=2018-05-08 03:34:34, af_status=Non-organic, path=, scheme=, host=}
作为以下代码的结果:
var onSuccess = function(result) {
console.log(result);
};
window.plugins.appsFlyer.initSdk(options,onSuccess,onError);
它看起来像 JSON,但使用 =
而不是 :
,然后我尝试使用 result.af_sub1
和 result["af_sub1"]
来解析它,两者 return undefined
您可以先转换响应以符合 JSON,然后使用 JSON.parse
解析它。请参阅下面的代码段。请注意,所有数据类型都是字符串,您需要自己处理数据类型转换。 IE。 af_deeplink
不会是布尔值。
let result = "{af_sub1=1.5, af_deeplink=true, campaign=None, media_source=None,install_time=2018-05-08 03:34:34, af_status=Non-organic, path=, scheme=, host=}";
let parseResponse = (res) => JSON.parse(res.replace(/([^,\s\{=]+)=([^,]*)(?=,|\})/gi, '"" : ""'));
let obj = parseResponse(result);
console.log(typeof obj); // object
console.log(obj.af_sub1); // 1.5
PS:使用正则表达式的详细解释请参考我在regex101.com
上创建的the snippet