import 'dart:convert';
void main() async {
String raw = "{data: {name: joy, tags: aa,bb, city: jakarta}}";
print("Test 0: $raw");
String jsonString = _convertToJsonStringQuotes(raw: raw);
print("Test 1: $jsonString");
final Map<dynamic, dynamic> result = json.decode(jsonString);
print('Test 2: $result');
}
String _convertToJsonStringQuotes({required String raw}) {
String jsonString = raw;
/// add quotes to json string
jsonString = jsonString.replaceAll('{', '{"');
jsonString = jsonString.replaceAll(': ', '": "');
jsonString = jsonString.replaceAll(', ', '", "');
jsonString = jsonString.replaceAll('}', '"}');
/// remove quotes on object json string
jsonString = jsonString.replaceAll('"{"', '{"');
jsonString = jsonString.replaceAll('"}"', '"}');
/// remove quotes on array json string
jsonString = jsonString.replaceAll('"[{', '[{');
jsonString = jsonString.replaceAll('}]"', '}]');
return jsonString;
}
위처럼 String의 특정 위치에 "를 붙이는 util 함수를 짜서 적용하면 된다.
감사합니다