我想检索用户在Google上的所有标签,并以一种干净的方式显示它们,就像Google自己一样:
当我使用Gmail API获取此标签层次结构时,我会收到以下数据:
GET https://www.googleapis.com/gmail/v1/users/me/labels?key={YOUR_API_KEY}
我用" /"作为分隔符,以便找出某个子标签的父标签。这很有效,直到我意识到我可以使用" /"在名字里。长号。
是否有另一种方法可以做到这一点,或者我应该阻止用户使用" /"创建标签。在他们身上,只是生活在潜在的"坏"他们可能在别处创建的标签?感谢。
答案 0 :(得分:1)
正确处理这种情况是可能的,虽然它需要一些额外的工作,而不仅仅是分裂'/'。
假设您有标签:
当您获取所有标签时,您将获得3个条目:
“foo” 的 “富/栏” 为 “foo /酒吧/巴兹/ qux”
请注意,虽然存在“foo”和“foo / bar”,但没有“foo / bar / baz”。该标签不存在,因为'baz / qux'是文字标签名称。
而不是简单地拆分,而是尝试前缀匹配。父标签将是最长的标签(+尾随/),它是您检查的标签的前缀。前缀后面的任何内容都是标签名称本身。