How to fix JSON parsing error on Collections pages?

Hi community!
I noticed an error in Google Search Console that started occurring August 16 where there is a JSON parsing error.

The error is:JSON parsing error: Invalid token ] } .

The code snippet that caused the error:

},

The error is only appearing on my Collections pages. Here is the JSON snippet from Shopify:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
      {%- for product in collection.products -%}
{% if product.type=='giftbox_ghost_product' %}{%continue%}{%endif%}
        {
          "@type": "ListItem",
          "position": {{ forloop.index | json }},
          "url": {{ product.url | json }},
          "name": {{ product.title | json }}
        }
        {% unless forloop.last %},{% endunless %}
      {%- endfor -%}
  ]
}
</script>

An example page that has this error is: https://www.wishgardenherbs.com/collections/respiratory-wellness

I cannot figure out the error. Does anyone have a guess?

Thank you,

Bill

Hi @bill_wishgarden

Based on the code provided, you have an if statement inside the forloop. You add comma when its the last forloop, but since you have if statement which takes a filter and only continue if it meets the certain condition. So, it never meets the forloop.last.

Try the edited code below instead:


Please don’t forget to Like and Mark Solution to the post that helped you. Thanks!

Thank you so much! I replaced the code with your code and submitted the fix to Google and it appears to have worked! Thanks again! I love this Community!