MustacheJava:如何通过键获取地图中的值
我正在Java中使用JMustache 我的胡子模板中有一个映射变量。如何像在Java(map.get())中那样在映射中的特定键处获取值 我知道如何在模板中遍历映射的键和值。但是我想要一个没有迭代的解决方案,这样我可以计算一个表达式,例如: 资料 模板MustacheJava:如何通过键获取地图中的值,java,mustache,Java,Mustache,我正在Java中使用JMustache 我的胡子模板中有一个映射变量。如何像在Java(map.get())中那样在映射中的特定键处获取值 我知道如何在模板中遍历映射的键和值。但是我想要一个没有迭代的解决方案,这样我可以计算一个表达式,例如: 资料 模板 首先,你的胡子语法有问题城市['Tokyo']无效城市是一个数组。可以迭代数组,但不能基于其键值(或任何其他条件)选择元素 因此,这个JSON对象更适合: { "cities": { "Tokyo": {
首先,你的胡子语法有问题<代码>城市['Tokyo']无效<代码>城市是一个数组。可以迭代数组,但不能基于其键值(或任何其他条件)选择元素 因此,这个JSON对象更适合:
{
"cities": {
"Tokyo": {
"overview": {
"population": "19000000",
"area": "450000"
}
},
"Sydney": {
"overview": {
"population": "4500000",
"area": "6250000"
}
}
}
}
其次,必须使用Map
和List
对象将JSON字符串
解析为一个结构。大多数JSON解析器都能够做到这一点。在本例中,我使用
首先,你的胡子语法有问题<代码>城市['Tokyo']无效<代码>城市是一个数组。可以迭代数组,但不能基于其键值(或任何其他条件)选择元素 因此,这个JSON对象更适合:
{
"cities": {
"Tokyo": {
"overview": {
"population": "19000000",
"area": "450000"
}
},
"Sydney": {
"overview": {
"population": "4500000",
"area": "6250000"
}
}
}
}
其次,必须使用Map
和List
对象将JSON字符串
解析为一个结构。大多数JSON解析器都能够做到这一点。在本例中,我使用
您必须使用JMustache吗?例如,你可以使用Jackson库在一行中完成。你必须使用JMustache吗?例如,可以使用Jackson库在一行中完成。
{
"cities": {
"Tokyo": {
"overview": {
"population": "19000000",
"area": "450000"
}
},
"Sydney": {
"overview": {
"population": "4500000",
"area": "6250000"
}
}
}
}
@Test
public void testSO_45787572() throws IOException {
final String json =
"{\n" +
" \"cities\": {\n" +
" \"Tokyo\": {\n" +
" \"overview\": {\n" +
" \"population\": \"19000000\",\n" +
" \"area\": \"450000\"\n" +
" }\n" +
" },\n" +
" \"Sydney\": {\n" +
" \"overview\": {\n" +
" \"population\": \"4500000\",\n" +
" \"area\": \"6250000\"\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
assertEquals("The population of Tokyo is: 19000000", Mustache.compiler()
.compile(new StringReader("The population of Tokyo is: {{cities.Tokyo.overview.population}}"))
.execute(new ObjectBuilder(new JSONParser(json)).getObject())
);
}