java - 如何将带有对象和数组索引的字符串转换为 json

标签 java arrays json freemarker

我从另一个程序收到带有元素字符串表示的 Map:

Map<String,String> properties = new HashMap<String,String>() {{
    put("news[0].title", "Title 1");
    put("news[0].body",  "Body 1");
    put("news[1].title", "Title 2");
    put("news[1].body",  "Body 2");
}};

我需要将其渲染到 freemarker-template 中。有问题

freemarker-flat-structure-of-passing-parameters-transfer-to-array-of-objects

我们认为在 freemarker 中解析此类值是不可能的。但 freemarker 可以 eval json。

所以我需要知道如何将这个 map 转换为对象或json。我需要这样的东西:

{
    "news": [
        {"title": "Title1", "body": "Body1"},
        {"title": "Title2", "body": "Body2"}            
    ]
}

map 中的参数名称未知,不完全是“新闻”,不完全是“标题”和“正文”,我不知道。 可能有一些用于此类目的的库吗?

最佳答案

由于您在那里使用自己的语言,因此只需为其编写一个解析器即可。毕竟它不是一种复杂的语言。另外,根据我对这个问题的了解,将其转换为 JSON 没有意义。是的,FTL 表达式语法和 JSON 语法有很多重叠。但是您不应该解析 FTL-s 内的任何内容,只需将您的语言解析为 List-s 和 JavaBeans 和/或 Map-s,然后传递该纯 Java 对象到 FreeMarker。

关于java - 如何将带有对象和数组索引的字符串转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27167290/

相关文章:

java - JButton 上的 itemStateChanged

java - 如何在 Java 上创建/使用/导入自定义方法

java - 尝试获取正确的月份以显示最高和最低值

c - uint8_t 数组和附加数据

python - 如何使用带有嵌套列表和字典的 Python 遍历 JSON 文件

java - 单独测试单一方法?

java - JPAContainer通过编程方式设置关系?

arrays - 在两个数组中查找不匹配项并将不匹配项添加到列中的最后一个位置

javascript - 如何在循环中使用 jQuery 和带参数的 JSON 生成动态 HTML?

php - 将从linkedin检索到的信息转换为文本并将其保存到数据库中