Free: subloop vs. subloop-array
You learned about JSON’s basic structure and the terms object and array. The sample JSON at https://doc.json-content-importer.com/wp-content/plugins/json-content-importer/json/gutenbergblockexample1.json presents both those data types.
The challenge now is to display data with the free JCI Plugin. For that, the template must use subloop for objects and subloop-array for arrays.
The basic template syntax is like this for an object:
{subloop:JSON-KEY_LOOP:NUMBER_OF_ITEMS}
{JSON-KEY_LOOP.JSON-KEY_ITEM}
{/subloop:JSON-KEY_LOOP}
For an array, it’s like this:
{subloop-array:JSON-KEY_LOOP:NUMBER_OF_ITEMS}
{JSON-KEY_LOOP.JSON-KEY_ITEM}
{/subloop-array:JSON-KEY_LOOP}
Let’s illustrate this with our example JSON: basenode=level1 in the shortcode tells the Plugin to go to the element level1. The JSON key level2 is an array: each item of this array is either a key:value pair, or an object.
The syntax for this is:
[jsoncontentimporter url=https://doc.json-content-importer.com/wp-content/plugins/json-content-importer/json/gutenbergblockexample1.json basenode=level1]
TEMPLATE: {start}<br>
{subloop-array:level2:-1}
<strong>key: {level2.key}</strong><br>
{subloop:level2.data:-1}
id: {level2.data.id}<br>
{/subloop:level2.data}
{/subloop-array:level2}
[/jsoncontentimporter]
See this in action:
TEMPLATE: Very good, this is the value of 'start', right out of the JSON-data
key: This is the first value of key in the 'level1'-array
id: 11111
key: This is the second value of key in the 'level1'-array
id: 222
key: This is the third value of key in the 'level1'-array
id: 33333333
key: This is the fourth value of key in the 'level1'-array
id: 4444
Please note: the value of the basenode in the shortcode and the template are connected. You get almost the same result with basenode=level1.level2, but {start} is not accessible, as the Plugin moves beyond it to the next more profound level of hierarchy:
[jsoncontentimporter url=https://doc.json-content-importer.com/wp-content/plugins/json-content-importer/json/gutenbergblockexample1.json basenode=level1.level2]
<strong>key: {key}</strong><br>
{subloop:data:-1}
id: {data.id}<br>
{/subloop:data}
[/jsoncontentimporter]
key: This is the first value of key in the 'level1'-array
id: 11111
key: This is the second value of key in the 'level1'-array
id: 222
key: This is the third value of key in the 'level1'-array
id: 33333333
key: This is the fourth value of key in the 'level1'-array
id: 4444
You may also use the shortcode without a basenode:
[jsoncontentimporter url=https://doc.json-content-importer.com/wp-content/plugins/json-content-importer/json/gutenbergblockexample1.json]
{subloop:level1:-1}
TEMPLATE: {level1.start}<br>
{subloop-array:level1.level2:-1}
<strong>key: {level1.level2.key}</strong><br>
{subloop:level1.level2.data:-1}
id: {level1.level2.data.id}<br>
{/subloop:level1.level2.data}
{/subloop-array:level1.level2}
{/subloop:level1}
[/jsoncontentimporter]
TEMPLATE: Very good, this is the value of 'start', right out of the JSON-data
key: This is the first value of key in the 'level1'-array
id: 11111
key: This is the second value of key in the 'level1'-array
id: 222
key: This is the third value of key in the 'level1'-array
id: 33333333
key: This is the fourth value of key in the 'level1'-array
id: 4444