你好我是新的放纵请:)
我正在做一个带有很多动态值的标签生成器,这里是最终输出:
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“:{”忽略“:”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“}}}
所有粗体值都是动态生成的,每次都会更改。我尝试使用正则表达式,但似乎很难
从第一个大括号{
,一切似乎都是一个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)
这是json数据。因此,您可以按键访问所需的值。例如,首先取空白json
let output={}
output["hintId"]= data.hintId
output["ezakusBid"] = data.ezakusBid
And you can create new json data as your wish
如果您有权访问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);