import 'dart:convert'; import 'dart:io'; void main() async { final file = File('assets/json/body_symptoms_data.json'); final content = await file.readAsString(); print('File size: ${content.length} characters'); // Split into two parts final parts = content.split('export const SymptomsData = ['); if (parts.length != 2) { print('ERROR: Could not split file properly'); exit(1); } print('Split into ${parts.length} parts'); // Process BodySymptomsData var bodyPart = parts[0] .replaceAll('export const BodySymptomsData = ', '') .trim() .replaceAll(RegExp(r';$'), ''); print('Parsing body symptoms...'); Map bodySymptomsData; try { bodySymptomsData = json.decode(bodyPart); print('✅ Body symptoms parsed: ${bodySymptomsData.length} body parts'); } catch (e) { print('❌ Error parsing body symptoms: $e'); exit(1); } // Process SymptomsData print('Processing symptoms data...'); var symptomsPart = parts[1] .trim() .replaceAll(RegExp(r'\];$'), '') .replaceAllMapped(RegExp(r'\n(\s*)id:'), (m) => '\n${m.group(1)}"id":') .replaceAllMapped(RegExp(r'\n(\s*)type:'), (m) => '\n${m.group(1)}"type":') .replaceAllMapped(RegExp(r'\n(\s*)name:'), (m) => '\n${m.group(1)}"name":') .replaceAllMapped(RegExp(r'\n(\s*)common_name:'), (m) => '\n${m.group(1)}"common_name":'); print('Parsing symptoms...'); List symptomsData; try { symptomsData = json.decode('[$symptomsPart]'); print('✅ Symptoms parsed: ${symptomsData.length} symptoms'); } catch (e) { print('❌ Error parsing symptoms: $e'); print('First 1000 chars:'); print('[$symptomsPart]'.substring(0, 1000)); exit(1); } // Create final JSON print('Creating final JSON structure...'); final jsonStructure = { 'bodySymptoms': bodySymptomsData, 'symptoms': symptomsData, }; // Write to file print('Writing to file...'); final encoder = JsonEncoder.withIndent(' '); await file.writeAsString(encoder.convert(jsonStructure)); print('\n✅ SUCCESS! File converted to proper JSON'); print('✅ Body parts: ${bodySymptomsData.length}'); print('✅ Symptoms: ${symptomsData.length}'); }