簡體   English   中英

如何使用 Javascript 在 JSON 中執行通配符鍵搜索?

[英]How to perform wildcard key search in JSON using Javascript?

如何在 JSON 中執行關鍵字搜索? 我想從 JSON 中獲取所有匹配的字符串鍵,而不是值。

 let json = { "first": { "first_fullname": 'abc', "first_address": '1 street name', "first_phone": 123456 }, "second": { "second_fullname": 'xyz', "second_address": '2 street name', "second_phone": 987654 } } var prop1 = 'first_address' var prop2 = 'address' Object.keys(json).forEach((person) => { Object.keys(json[person]).forEach((attr) => { if (prop1 in json[person]) { console.log(prop1) } }) }); Object.keys(json).forEach((person) => { Object.keys(json[person]).forEach((attr) => { if (prop2 in json[person]) { console.log(prop2) } }) });

期望所有包含*address*的鍵字符串,並使用通配符。

first_address
second_address

我會將其寫為 function ,它采用屬性和通配符標志,然后過濾每個person的鍵以找到與該屬性匹配的鍵,對無通配符使用嚴格相等或對通配符使用String.includes

 let json = { "first": { "first_fullname": 'abc', "first_address": '1 street name', "first_phone": 123456 }, "second": { "second_fullname": 'xyz', "second_address": '2 street name', "second_phone": 987654 } } var prop1 = 'first_address' var prop2 = 'address' const hasProp = (json, prop, wildcard) => Object.values(json).flatMap(person => Object.keys(person).filter(key => wildcard? key.includes(prop): key === prop) ) console.log(hasProp(json, prop1, false)) console.log(hasProp(json, prop2, true))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM