Parsing json with a gsub/split feels "wrong" somehow. I wonder whether this might break in some dramatic way, e.g. if your json contains whitespaces or newlines between fields.
The "cleaner" solution might be to use the JSON filter to parse the field into another field that then contains subfields (using the target parameter), and then accessing the name field within that target with the mutate-copy to pull it into your final destination. After that you can remove the json target again.