1. The original format of the json data is as follows. The order of its keys is: TexGEtcUx, QkGyGZ2ST, yE9gC1kxT, Q1yqz2RBi. As shown in Figure 1

JSON
{
"sections": {
"TexGEtcUx": {
"type": "main-index-carousel",
"settings": {
"loop": true,
"autoplay": true,
"height": "full",
"interval": 5
},
"blocks": {
"slide-0": {
"type": "slide",
"settings": {
"image": "",
"url": "/",
"align": "center",
"title": "Image with text overlay",
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button": "Shop Now",
"opacity": 100,
"button_background_color": "#ffffff",
"button_color": "#000000",
"color": "#ffffff"
}
},
"slide-1": {
"type": "slide",
"settings": {
"image": "",
"url": "/",
"align": "center",
"title": "Image with text overlay",
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button": "Shop Now",
"opacity": 100,
"button_background_color": "#ffffff",
"button_color": "#000000",
"color": "#ffffff"
}
}
}
},
"QkGyGZ2ST": {
"type": "collections"
},
"yE9gC1kxT": {
"type": "products"
},
"Q1yqz2RBi": {
"type": "apps",
"blocks": {
"newsletter": {
"type": "internal/newsletter/blocks/newsletter"
}
}
}
}
}
2. Execute the code to insert into the database as follows, printing $extra[‘schema’]
PHP
$asset = ThemeAsset::withoutVersion(function () use($predicate, $extra) {
if ($predicate['asset_key'] == 'pages/index.blade.php') {
print_r($extra['schema']);
exit;
}
return ThemeAsset::updateOrCreate(
$predicate,
$extra
);
});
3. Print $extra[‘schema’], which equals the original format of the json data. As shown in Figure 2
![Print $extra['schema'], which equals the original format of the json data](https://media.shuijingwanwq.com/2022/09/2-6.png)
JSON
{
"sections": {
"TexGEtcUx": {
"type": "main-index-carousel",
"settings": {
"loop": true,
"autoplay": true,
"height": "full",
"interval": 5
},
"blocks": {
"slide-0": {
"type": "slide",
"settings": {
"image": "",
"url": "/",
"align": "center",
"title": "Image with text overlay",
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button": "Shop Now",
"opacity": 100,
"button_background_color": "#ffffff",
"button_color": "#000000",
"color": "#ffffff"
}
},
"slide-1": {
"type": "slide",
"settings": {
"image": "",
"url": "/",
"align": "center",
"title": "Image with text overlay",
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button": "Shop Now",
"opacity": 100,
"button_background_color": "#ffffff",
"button_color": "#000000",
"color": "#ffffff"
}
}
}
},
"QkGyGZ2ST": {
"type": "collections"
},
"yE9gC1kxT": {
"type": "products"
},
"Q1yqz2RBi": {
"type": "apps",
"blocks": {
"newsletter": {
"type": "internal/newsletter/blocks/newsletter"
}
}
}
}
}
4. View the data written to the table, and I suspect that the order of its json keys is based on alphabetical order: Q1yqz2RBi, QkGyGZ2ST, TexGEtcUx, yE9gC1kxT. Moreover, the key order of its internal sub-json structure has also changed.
JSON
{
"sections": {
"Q1yqz2RBi": {
"type": "apps",
"blocks": {
"newsletter": {
"type": "internal/newsletter/blocks/newsletter"
}
}
},
"QkGyGZ2ST": {
"type": "collections"
},
"TexGEtcUx": {
"type": "main-index-carousel",
"blocks": {
"slide-0": {
"type": "slide",
"settings": {
"url": "/",
"align": "center",
"color": "#ffffff",
"image": "",
"title": "Image with text overlay",
"button": "Shop Now",
"opacity": 100,
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button_color": "#000000",
"button_background_color": "#ffffff"
}
},
"slide-1": {
"type": "slide",
"settings": {
"url": "/",
"align": "center",
"color": "#ffffff",
"image": "",
"title": "Image with text overlay",
"button": "Shop Now",
"opacity": 100,
"description": "Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.",
"button_color": "#000000",
"button_background_color": "#ffffff"
}
}
},
"settings": {
"loop": true,
"height": "full",
"autoplay": true,
"interval": 5
}
},
"yE9gC1kxT": {
"type": "products"
}
}
}
5. After changing the table column type to text, the order of the json remains consistent with the original. As shown in Figure 3

