#json #flutter #dart
#json #трепетать #дротик
Вопрос:
Я вызываю XMl
API базы данных
Затем я преобразую его с Xml2Json
помощью, чтобы затем декодировать и получить a JsonMap
, который хорошо возвращается.
Когда я затем перейду к do locations.fromJson
, чтобы иметь возможность вызывать данные из моей модели, это возвращается как null
.
Я предполагаю, что преобразование из XML может усложниться, но я перепробовал все возможности, проанализировав весь ответ, раздел, который мне нужен, и изменив модель всеми возможными способами.
Данные возвращаются нормально , как Json
, но при их анализе с помощью моей модели возникает некоторое несоответствие, сделанное с помощью quicktype.io
Когда я вызываю его каким-либо образом, будь то print
поиск данных или извлечение данных, он возвращается в null
vehicleActivity
Этот звонок
Futurelt;Locationsgt; fetchLiveLocations() async { var client = http.Client(); var locations; Xml2Json xml2Json = new Xml2Json(); try{ var response = await client.get( 'https_call'); if (response.statusCode == 200) { xml2Json.parse(response.body); var jsonString = xml2Json.toGData(); var jsonMap = json.decode(jsonString); //jsonMap is returning fine locations = Locations.fromJson(jsonMap); //Returning as null } } catch(Exception) { return locations; } return locations; }
Верхняя часть модели Json
import 'dart:convert'; Locations locationsFromJson(String str) =gt; Locations.fromJson(json.decode(str)); String locationsToJson(Locations data) =gt; json.encode(data.toJson()); class Locations { Locations({ this.vehicleActivity, }); Listlt;VehicleActivitygt; vehicleActivity; factory Locations.fromJson(Maplt;String, dynamicgt; json) =gt; Locations( vehicleActivity: Listlt;VehicleActivitygt;.from(json["VehicleActivity"].map((x) =gt; VehicleActivity.fromJson(x))), ); Maplt;String, dynamicgt; toJson() =gt; { "VehicleActivity": Listlt;dynamicgt;.from(vehicleActivity.map((x) =gt; x.toJson())), }; } class VehicleActivity { VehicleActivity({ this.recordedAtTime, this.itemIdentifier, this.validUntilTime, this.monitoredVehicleJourney, this.extensions, }); DateTime recordedAtTime; String itemIdentifier; DateTime validUntilTime; MonitoredVehicleJourney monitoredVehicleJourney; Extensions extensions; factory VehicleActivity.fromJson(Maplt;String, dynamicgt; json) =gt; VehicleActivity( recordedAtTime: DateTime.parse(json["RecordedAtTime"]), itemIdentifier: json["ItemIdentifier"], validUntilTime: DateTime.parse(json["ValidUntilTime"]), monitoredVehicleJourney: MonitoredVehicleJourney.fromJson(json["MonitoredVehicleJourney"]), extensions: Extensions.fromJson(json["Extensions"]), );