Как проанализировать данные преобразования AppsFlyer в Javascript? - PullRequest
0 голосов
/ 08 мая 2018

Как разобрать этот ответ:

{af_sub1 = 1.5, af_deeplink = true, кампания = нет, media_source = нет, install_time = 2018-05-08 03:34:34, af_status = Неорганический, путь =, схема =, хост =}

как результат следующего кода:

var onSuccess = function(result) {
     console.log(result);
};

window.plugins.appsFlyer.initSdk(options,onSuccess,onError);

Это похоже на JSON, но с использованием = вместо :, затем я попытался разобрать его, используя result.af_sub1 и result["af_sub1"], оба возвращают undefined

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете сначала преобразовать ответ, чтобы он соответствовал JSON, а затем проанализировать его, используя JSON.parse. Смотрите фрагмент ниже. Обратите внимание, что все типы данных будут строками, и вам нужно позаботиться о преобразовании типов данных самостоятельно. То есть 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, '"$1" : "$2"'));
let obj = parseResponse(result);

console.log(typeof obj);  // object
console.log(obj.af_sub1); // 1.5

PS: Для подробных объяснений используемого регулярного выражения, пожалуйста, обратитесь к фрагменту , который я создал на regex101.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...