add availability zone, support nested fields in json field spec