Add functional json dsl