Logstash mutate add all fields from json
You can use the ruby filter:
filter { ruby { code => " event['new_val'].each {|k, v| event[k] = v } event.remove('new_val') " }}
Tested with Logstash 2.2, it should be different for version 5+.
This works after they changed class Logstash::Event to API:https://www.elastic.co/guide/en/logstash/current/event-api.html
filter { ruby { code => " event.get('new_val').each {|k, v| event.set(k,v) } event.remove('new_val') " }}