How to load JSON data in MySQL?
- 2 minutes read - 230 wordsTo load JSON data into a MySQL column you need to include it as string.
E.g. to include the following JSON:
{ "id": 778, "shop": "Luigis Pizza", "name": "Edward Olson", "phoneNumbers": ["(935)503-3765x4154","(935)12345"], "address": "Unit 9398 Box 2056 DPO AP 24022", "image": null, "pizzas": [ { "pizzaName": "Salami", "additionalToppings": ["🥓", "🌶️"] }, { "pizzaName": "Margherita", "additionalToppings": ["🍌", "🌶️", "🍍"] } ] } In a table containing a json_data JSON column:
create table test(id serial primary key, json_data json); You can just insert the json_data column as string:
insert into test(id, json_data) values ( 1, '{ "id": 778, "shop": "Luigis Pizza", "name": "Edward Olson", "phoneNumbers": ["(935)503-3765x4154","(935)12345"], "address": "Unit 9398 Box 2056 DPO AP 24022", "image": null, "pizzas": [ { "pizzaName": "Salami", "additionalToppings": ["🥓", "🌶️"] }, { "pizzaName": "Margherita", "additionalToppings": ["🍌", "🌶️", "🍍"] } ] }'); MySQL will validate the content as JSON and, if correct, store the data.
If you retrieve the data from the test table with
select * from test; You can see the row correctly stored.
+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | id | json_data | +----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 1 | {"id": 778, "name": "Edward Olson", "shop": "Luigis Pizza", "image": null, "pizzas": [{"pizzaName": "Salami", "additionalToppings": ["🥓", "🌶️"]}, {"pizzaName": "Margherita", "additionalToppings": ["🍌", "🌶️", "🍍"]}], "address": "Unit 9398 Box 2056 DPO AP 24022", "phoneNumbers": ["(935)503-3765x4154", "(935)12345"]} | +----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec) NOTE: more info is available in the MySQL JSON functions documentation page