use json.Marshal instead