当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf:当字段名称包含破折号时,将对象列表转换为JSON

公冶子琪
2023-03-14

我有一个简单的类,如下所示:

public class Item {
    private final String hcKey;
    private final int value;
    public Item(String hcKey, int value) {
        this.hcKey = hcKey;
        this.value = value;
    }
    public String getHcKey()
}

我创建一个列表 ,并将其作为属性传递给ThymeLeaf模板,以便将数据输入到高图地图图表中:

 List<Item> items = Arrays.asList(new Item("xyz", 5), ... );
 model.addAttribute("entries", items);
 return "chart";
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
$(function () {
    var data = [[${entries}]];
    ...
});
/*]]>*/
</script>
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
$(function () {
    var data = [{'hcKey':'xyz','value':5}, ... ];
    ...
});
/*]]>*/
</script>

最后,问题来了!

不幸的是,Highchoors希望第一个字段的名称为hc-key,但是破折号不是Java中字段名称的有效字符。我可以做什么来自动获得以下内容?

...
var data = [{'hc-key':'xyz','value':5}, ... ];
...           ^^^^^^

共有1个答案

孙元明
2023-03-14

您可以在JavaScript中映射这些选项(键),例如:

var data = [[${entries}]].map(function(item) {
    item['hc-key'] = item.hcKey;
    return item;
});
 类似资料:
  • 问题内容: 我正在使用org.json库将Object转换为Json格式。请检查以下代码片段。 它显示了这样的输出: 它显示为空白并添加了卷曲基数。这是什么意思?有人遇到过这个问题吗? 问题答案: 首先,我强烈建议您不要使用此库(org.json),这是一个非常古老且不受支持的库(据我所知)。我建议杰克逊或格森。 但是,如果您确实需要JSONObject,则可以将getter添加到枚举中: 序列化

  • 问题内容: 我有yaml文件的片段: 但我无法使用方法名称创建pojo 有什么方法可以解析此类Yaml文件? 问题答案: 您可以传递自定义PropertyUtils来处理此类情况

  • 假设我有一个Employee类如下所示: 在Java中转换Json的最聪明的方法是什么? 或;

  • 我必须拆分一个包含破折号和减号的字符串。我试图根据unicode字符进行拆分(https://en.wikipedia.org/wiki/Hyphen#Unicode),仍然考虑减号与破折号字符相同。我如何解决它? 预期产出 (国家) (美国) -1个 实际输出量 (国家) (美国) //实际上,这里会打印空行,但编辑器会压缩空行 1. 我想在字符串连接期间会发生一些转换,但不确定。欢迎任何解决这

  • 问题内容: 我试图使我的git仓库pip可安装。为此,我正在重组存储库以遵循正确的约定。通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称同名的程序包中。例如,如果调用了我的存储库,则源代码将全部放入一个也称为的包中。 我的存储库中带有连字符以提高可读性:例如。因此,如果我想为其包装一个具有相同名称的包装,则其中也将带有连字符。在本教程中,它对python软件包名称说“不要使用连字

  • 问题内容: Json字符串: C#类: C#将json转换为电影的c#列表: 我的变量最终是一个计数为0的空列表。我是否缺少某些内容? 问题答案: 您的C#类映射与json结构不匹配。 解决方案: