Почему jsonfn.expand содержит нулевые значения? - PullRequest
0 голосов
/ 20 апреля 2020

Я создаю массив из JSON объектов, используя jsonfn , и отрисовываю их на объекте окна 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"
}

Это требует от меня добавить instanceof Object проверку при фильтрации в JavaScript, чтобы я не получил нулевую ошибку.

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

Почему jsonfn.exp и иногда выводить нулевые значения? Почему нет нулевой проверки безопасности, чтобы избежать их включения в отображаемый вывод?

1 Ответ

1 голос
/ 22 апреля 2020

См. JSONFN-5 билет. Должен работать без печати null с версии 1.0.9 (-SNAPSHOT). Или же извлеките последний код из github и соберите его самостоятельно.

...