【问题标题】:How to transform string with objects and array indexes into json如何将带有对象和数组索引的字符串转换为json
【发布时间】:2015-01-25 20:26:27
【问题描述】:

我从另一个程序 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可以评估json。

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

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

map中的参数名称未知,不完全是“news”,也不完全是“title”和“body”,我不知道。 可能有一些用于此类目的的库吗?

【问题讨论】:

标签: java arrays json freemarker


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    GSonJackson 库用于 Java 对象和 JSON 字符串之间的转换。

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2015-11-21
      • 2013-07-02
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 2016-03-23
      • 2016-10-09
      相关资源
      最近更新 更多