add cache support in json format