Based on the information you provided I assume you need M:N relationship to depict your relationship between the JSON data and the original table you outlined in your post.
Your original Table (updated)
+------------+----------------+------------+
| shop_id | id_lang | id_image |
+------------+----------------+------------+
| 1 | 1 | 2 |
| 1 | 1 | 3 |
| 1 | 1 | 4 |
+------------+----------------+------------+
New Table
+-------------+----------------+
| group_id | desc/name |
+-------------+----------------+
| 1 | Visit |
| 2 | Guest |
| 3 | Customer |
| 4 | Other |
| 5 | Test |
+-------------+----------------+
Relationship/Join Table:
+-------------+-------------------+
| FK group_id | FK Original Table |
+-------------+-------------------+
| 1 | A |
| 1 | B |
| 2 | C |
| 4 | D |
| 5 | E |
+-------------+-------------------+
Obviously you have in this case to either store the JSON as an duplicate or what would be even better and this is also what I would recommend => reconstruct it from the data you fetch from the DB.
The above table example is just as a hint how this could be realised on DB level. If you don't need a reconstruction of the data I wouldn't even bother at all on the original JSON. I don't know what the primary key of you original table is so I added a generic key for the join table.
Updated: removed 1:N because M:N is needed.