如何解析 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_sub1result["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