#javascript #reactjs
#javascript #reactjs
Вопрос:
Привет, я новичок, будьте снисходительны, пожалуйста 🙂
Я создаю генератор тегов с большим количеством динамических значений, и вот окончательный результат :
1554710490545:[B@773c0cef:{«заголовок»:{«EventID»: «c0afad22-6472-4f23-9a5d-1c5e0b48024e«, «tmst»: «1554710490545«, «agencyId»: «tazz«, «CustomerID»:»02c«, «тип»: » EzNavigationHitPayload загрузить»},»trackingEzNavHit»: {«hitBase»:{«hitId»: «8735b582-2be7-4764-ac83-da0e4d2206df«, «ezakusBid»: «a40afeb4-066f-4dc8-9de6-e450facecee9«, «tmst»: «1554710490545«, «wid»: » самый широкий«,»cookieOk»: true, «UserAgent»: «Mozilla /5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/73.0.3683.86 Safari/537.36″, «IPv4»: «77.154.199.100«, «ezCustom»: {«eznode»:»gfnode-001«,»version»:»4.0.10«},»agencyId»:»tazz«,»CustomerID»:»02c«}, «ezVarious»: {«игнорировать»:»STRING_TO_CHECK»}}}
Я хотел бы сохранить только эту часть :
{«hitId»: «8735b582-2be7-4764-ac83-da0e4d2206df», «ezakusBid»: «a40afeb4-066f-4dc8-9de6-e450facecee9», «tmst»: «1554710490545», «wid»: «widtest», «cookieOk»: true, «UserAgent» :»Mozilla /5.0 (Windows NT 10.0; Win64; x64) AppleWebKit /537.36 (KHTML, как Gecko) Chrome / 73.0.3683.86 Safari / 537.36″, «IPv4″:»77.154.199.100», «ezCustom»: {«eznode»:»gfnode-001″, «version»:»4.0.10″},»agencyId»:»tazz»,»CustomerID»:»02c»}, «ezVarious»:{«игнорировать»:»STRING_TO_CHECK»}}}
Все значения, выделенные жирным шрифтом, генерируются динамически и меняются каждый раз. Я пробовал с регулярными выражениями, но это кажется сложным
Комментарии:
1. Скажите нам, на каком основании вы хотите исключить часть.
2. Просто говорю, но генерировать случайные идентификаторы и не сохранять их для дальнейшей навигации в вашей модели данных, вероятно, не очень эффективный шаблон. Использование большого регулярного выражения, когда у вас есть JSON, который можно разобрать и просто использовать, только показывает, что что-то не так.
3. Пожалуйста, не форматируйте вывод в формате JSON, просто опубликуйте его в необработанном и улучшенном виде.
Ответ №1:
Это данные json. Таким образом, вы можете получить доступ к значению по ключу, который вы хотите. Например, сначала возьмите пустой json
let output={}
output["hintId"]= data.hintId
output["ezakusBid"] = data.ezakusBid
And you can create new json data as your wish
Ответ №2:
Если у вас есть доступ к JSON, то используйте его, вместо синтаксического анализа строки… Вот динамический способ доступа к trackingEzNavHit.hitBase
, если первые ключи могут время от времени отличаться.
const json = {
"1554710490545": {
"B@773c0cef": {
"header": {
"eventId": "c0afad22-6472-4f23-9a5d-1c5e0b48024e",
"tmst": "1554710490545",
"agencyId": "tazz",
"customerId": "02c",
"type": "EzNavigationHitPayload"
},
"trackingEzNavHit": {
"hitBase": {
"hitId": "8735b582-2be7-4764-ac83-da0e4d2206df",
"ezakusBid": "a40afeb4-066f-4dc8-9de6-e450facecee9",
"tmst": "1554710490545",
"wid": "widtest",
"cookieOk": true,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
"ipV4": "77.154.199.100",
"ezCustom": {
"eznode": "gfnode-001",
"version": "4.0.10"
},
"agencyId": "tazz",
"customerId": "02c"
},
"ezVarious": {
"ignore":"STRING_TO_CHECK"
}
}
}
}
};
console.log(json[Object.keys(json)[0]][Object.keys(json[Object.keys(json)[0]])].trackingEzNavHit.hitBase);
Комментарии:
1. 1554710490545:[B@773c0cef — это единственная сгенерированная зашифрованная строка, не являющаяся частью json. почему вы изменили [ на {? вы даже можете проверить закрывающие фигурные скобки для подтверждения.
2. вы уверены? для меня это выглядит как два ключа, и он забыл первую и последнюю части структуры json.
tmst
совпадает с первыми числами.
Ответ №3:
С первой фигурной скобки {
все кажется JSON.
Таким образом, вы можете получить строку после этого, используя
let str = `1554710490545:[B@773c0cef:{"header":{"eventId":"c0afad22-6472-4f23-9a5d-1c5e0b48024e", "tmst":"1554710490545","agencyId":"tazz","customerId":"02c", "type":"EzNavigationHitPayload"},"trackingEzNavHit": {"hitBase":{"hitId":"8735b582-2be7-4764-ac83-da0e4d2206df", "ezakusBid":"a40afeb4-066f-4dc8-9de6-e450facecee9","tmst":"1554710490545", "wid":"widtest","cookieOk":true, "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36","ipV4":"77.154.199.100","ezCustom": {"eznode":"gfnode-001","version":"4.0.10"},"agencyId":"tazz","customerId":"02c"}, "ezVarious":{"ignore":"STRING_TO_CHECK"}}}`;
let x = str.match(/({.*})/);
console.log(JSON.parse(x[1]).trackingEzNavHit)