是否有Java库使用该对象的“路径”的String表示来检索对象?
例如,假设我有一个对象
Map<String, Map<Integer, Map<String, String>>> myMap;
myMap包含这样的数据
"Dog"->[1,["name","Rex"]],[2,["name","Bowwowser"]]
理想情况下,我正在寻找一种方法,我可以传入“Dog.1.name”(也许是String.class)并接收一个包含“Rex”的字符串。我不太清楚这个技术名称是什么,虽然这个概念看起来与XPath类似,并且在JSTL中访问模型中的数据。
答案 0 :(得分:0)
JXPath至少会让你接近。我没有测试过这个特殊的例子,但是你正在寻找类似的东西:
JXPathContext context = new JXPathContext(myMap);
String firstDogName = (String)context.getValue("Dog/1/name");
但是,根据他们的文档,JXPath目前仅支持String
- 键控映射;但如果您用Map<Integer, Foo>
替换List<Foo>
,则需要设置。