interface RawData { uri: string; exif?: Record; location?: { latitude?: string | number; }; } export function transformData(data: RawData): RawData { const result = { ...data }; if (result.exif) { const newExif: Record = {}; for (const key in result.exif) { const value = result.exif[key]; // 普通对象:{Exif}, {TIFF}, {XMP} 等 if (typeof value === 'object' && !Array.isArray(value)) { if (key === '{GPS}') { // 处理 GPS 字段:所有子字段加前缀 "GPS" for (const subKey in value) { const newKey = 'GPS' + subKey; // 所有字段都加前缀 newExif[newKey] = value[subKey]; } } else { // 其它嵌套对象直接展开字段 for (const subKey in value) { newExif[subKey] = value[subKey]; } } } else { // 非对象字段保留原样 newExif[key] = value; } } result.exif = newExif; } // 最后将result的exif信息平铺 return { ...result, ...result.exif, exif: undefined }; }