实现JSON解析器最好使用哪种数据结构?我是在一个面试问题中被问到这个问题的

实现JSON解析器最好使用哪种数据结构?我是在一个面试问题中被问到这个问题的,json,algorithm,data-structures,Json,Algorithm,Data Structures,如果用户输入A.B.C程序应返回“val1”,如果用户输入A.D,则应返回E:{F:“val2”}块。 我回答了两个解决方案,一个是使用HashMap,另一个是使用Trie数据结构。但面试官对答案并不满意。根据采访者的说法,Trie将更复杂地用于这个问题。我可以从Python的角度回答这个问题。上面的结构是一个嵌套字典。例如,您可以执行以下操作: A:{ B:{ C:"val1" }, D:{ E:{ F:&qu

如果用户输入A.B.C程序应返回
“val1”
,如果用户输入
A.D
,则应返回
E:{F:“val2”}
块。
我回答了两个解决方案,一个是使用HashMap,另一个是使用Trie数据结构。但面试官对答案并不满意。根据采访者的说法,Trie将更复杂地用于这个问题。

我可以从Python的角度回答这个问题。上面的结构是一个嵌套字典。例如,您可以执行以下操作:

A:{
   B:{
       C:"val1"
     },
   D:{
     E:{
         F:"val2"
       },
    },
   G:"val3"
 }
如果用户输入是字符串
'a.B.C'
,则可以按点(
)将其拆分并返回值

from collections import defaultdict
import json

def my_parser():
    return defaultdict(my_parser)

your_data = my_parser()
your_data['A']['B']['C'] = "val1"
your_data['A']['D']['E']['F'] = "val2"
your_data['A']['G'] = "val2"

print(json.dumps(your_data['A']['B'])) # prints {'C': "val1"}
print(json.dumps(your_data)) # prints {A:{B:{C:"val1"},D:{E:{F:"val2"},G:"val3"}}