#json #flutter #dart #decode
Вопрос:
Вот строка, которую я пытаюсь перебрать, поэтому я попытался преобразовать ее в JSON.
{to_address_mobile: [The to address mobile field is required.], to_address_area_number_id: [The to address area number id field is required.]}
и вот как я пытался это сделать :
for (var validationError in json.decode('[${resp['data']}]')){
print(validationError);
}
Каждый раз, когда я получаю эту ошибку :
E/flutter (22342): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: FormatException: Unexpected character (at character 3)
E/flutter (22342): [{to_address_mobile: [The to address mobile field is required.], to_address...
Комментарии:
1. Вы пробовали заключать свои ключи в кавычки?
to_address_mobile --> "to_address_mobile"
(также ваши текстовые значения)2. Я не могу получить доступ к исходной строке. Я должен справиться с этим вот так !! как-нибудь по-другому?
3. Я думаю, вам нужно разобрать это самостоятельно, но, может быть, у кого-то есть идея получше.
4. Если вы всегда получаете данные такого типа, вы можете легко написать для них шаблон регулярного выражения
5. анализируя его, чтобы добавить «» для каждого ключа и значения. Я не могу понять, какой шаблон я могу использовать, чтобы убедиться, что я ничего не пропустил
Ответ №1:
Я написал шаблон регулярного выражения, чтобы извлечь информацию из вашей строки. Извините, если это не совсем оптимально, но я никогда на самом деле не работаю с регулярными выражениями:
(?<key>[^:{[] ]*):[ ]*[(?<value>[^:{[]]*)]
Отдельные совпадения являются парами ключ-значение, ключи находятся в именованной группе «ключ», а значения-в именованной группе «значение».