#flutter
Вопрос:
Как я могу получить геометрические координаты из этого API mongo в flutter? Я могу получить имя, тип, описание, но координаты.
class Padiglioni { final String id; final String nome; final String area; bool check = false; Geometry geometry; Padiglioni( { required this.area, required this.id, required this.nome, required this.check, required this.geometry }); factory Padiglioni.fromJson(Maplt;String, dynamicgt; json) { return Padiglioni( id: json['id'] as String, nome: json['nome'] as String, area: json['area'] as String, check: false, geometry: Geometry.fromJson(json['geometry']), ); } }
Комментарии:
1. Можете ли вы добавить немного ocde, чтобы мы могли вам помочь. поскольку координаты-это список, вы должны использовать индекс для получения значений, например, model. координаты[1][0] получат первое значение из первого списка.
2. Пожалуйста, добавьте свои коды !!
3. я пытаюсь редактировать, но стек говорит мне, что это много кода
Ответ №1:
Это довольно просто, все, что вам нужно сделать, это проанализировать данные json из вашего запроса
у вас есть два варианта
- используйте встроенные сериализованные методы json
- используйте свои собственные классы моделей дротиков с помощью jsonToDart [https://javiercbk.github.io/json_to_dart/]
итак, все, что вам нужно сделать, это сначала создать класс геометрии, что-то вроде этого
геометрия класса { Список кординат;
Geometry({this.cordinate}); Geometry.fromJson(Maplt;String, dynamicgt; json) { if (json['cordinate'] != null) { cordinate = new Listlt;Listgt;(); json['cordinate'].forEach((v) { cordinate.add(new List.fromJson(v)); }); } } Maplt;String, dynamicgt; toJson() { final Maplt;String, dynamicgt; data = new Maplt;String, dynamicgt;(); if (this.cordinate != null) { data['cordinate'] = this.cordinate.map((v) =gt; v.toJson()).toList(); } return data; }
}
класс Кординат {
Cordinate({}); Cordinate.fromJson(Maplt;String, dynamicgt; json) { } Maplt;String, dynamicgt; toJson() { final Maplt;String, dynamicgt; data = new Maplt;String, dynamicgt;(); return data; }
}
теперь после этого просто передайте свой объект json этой функции, а затем вы можете использовать его везде, где захотите
Geometry geometry = Geometry.fromJson(jsonResponse['geometry']);
Комментарии:
1. если возможно изменить ответ Api, то, пожалуйста, сделайте это простой идеей, но да, это возможно и с этим ответом, но немного запутанным и сложным
2. Конструктор «Список» по умолчанию недоступен, если включена защита от нуля. (Документация) Попробуйте использовать литерал списка» List.filled» или «List.generate». у меня есть эта ошибка