add sparse object/json write support back