【问题标题】:Why does jsonfn.expand include null values?为什么 jsonfn.expand 包含空值?
【发布时间】:2020-04-20 18:46:31
【问题描述】:

我正在使用 jsonfn 构建一个 JSON 对象数组并将它们呈现在 JavaScript 窗口对象上。

[#assign json = []]
[#list articles as article]
  [#assign json += [jsonfn.from(article).add("categories", "title", "@name").expand("categories").inline().print()]]
[/#list]

<script>
  window.articles = [${json?join(",")}];
</script>

虽然有效,但扩展类别字段 (expand("categories")) 有时包含空值。

{
  "categories": [
    {
      "displayName": "Example Category",
      "@name": "example-category"
    },
    null
  ],
  "title": "Example Article",
  "@name": "example-article"
}

这需要我在 JavaScript 中过滤时添加一个 instanceof Object 检查,以免出现空错误。

export const filterArticles = (selectedCategory, articles) => {
  return articles.filter((article) => {
    return article.categories.find((category) =>
      category instanceof Object && category['@name'] === selectedCategory
    );
  });
};

为什么jsonfn.expand 有时会输出空值?为什么没有空安全检查来避免将它们包含在呈现的输出中?

【问题讨论】:

  • 这看起来更像是一个改进请求而不是一个实际问题,请在 Magnolia 问题跟踪系统中创建一个工单。
  • 谢谢@Ducaz035。如何访问问题跟踪系统?
  • 网址为:jira.magnolia-cms.com如有必要,请随意选择MAGNOLIA作为项目。

标签: magnolia


【解决方案1】:

JSONFN-5 票。从版本 1.0.9(-SNAPSHOT) 开始,应该可以在不打印 nulls 的情况下工作。或者,从github 提取最新代码并自行构建。

【讨论】:

  • 谢谢@Jan。我们已经引入了最新的代码。如果有任何问题,我会通知您。
  • 您能否通过 Nexus 提供该版本?我们目前无法在那里访问 v.1.0.9。
  • 现在应该在 nexus 中可见。
猜你喜欢
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
相关资源
最近更新 更多