Конвертировать JSON строку в список объектов в Dart - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь преобразовать строку в список объектов в дротике. Строка выглядит следующим образом:

Как это выглядит в моем приложении - изображение

Возвращение JSON - pastebin

Модель моего класса:

class Post {
  GetDataResult getDataResult;

  Post({this.getDataResult});

  Post.fromJson(Map<String, dynamic> json) {
    getDataResult = json['GetDataResult'] != null
        ? new GetDataResult.fromJson(json['GetDataResult'])
        : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.getDataResult != null) {
      data['GetDataResult'] = this.getDataResult.toJson();
    }
    return data;
  }
}

class GetDataResult {
  String retVal;

  GetDataResult({this.retVal});

  GetDataResult.fromJson(Map<String, dynamic> json) {
    retVal = json['RetVal'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['RetVal'] = this.retVal;
    return data;
  }
}

Кто-нибудь может мне помочь?

Ответы [ 4 ]

0 голосов
/ 31 января 2020

Я решил это. Сначала я создаю новую модель класса:

class Profesi {
  String id;
  String description;
  String idPekerjaan;

  Profesi({this.id, this.description, this.idPekerjaan});

  Profesi from ({object: Map}) {
    var map = object;
    return Profesi(
      id: map['ID'] as String,
      description: map['Description'] as String,
      idPekerjaan: map['IDPekerjaan'] as String,
    );
  }
}

в своем методе postRequest. Я подготавливаю переменную, которая будет содержать декодированный json из моего retVal:

List listJsonContent;
listJsonContent = json.decode(Post.fromJson(json.decode(response.body)).getDataResult.retVal);

Подготовьте список моих новых Класс Profesi и вставьте объект, используя метод add () (здесь я вставляю только один: listJsonContent [0], вы можете вставить все, перебирая список):

List<Profesi> profesi = List<Profesi>();
profesi.add(Profesi().from(object: listJsonContent[0]));

Попробуйте напечатать его, чтобы проверить:

print('${profesi[0].id}, ${profesi[0].idPekerjaan}, ${profesi[0].description}');
0 голосов
/ 31 января 2020

Используйте эту ссылку для создания объекта Dart из Json.

Посещения https://javiercbk.github.io/json_to_dart/ this!

0 голосов
/ 31 января 2020

Для преобразования Json в строку. Например,

пример класса {имя строки} print (sample.name.toString ());

0 голосов
/ 31 января 2020

Вам нужно использовать gson, преобразовать строку в список объектов, метод gson.from Json () вернуть то, что вы хотите json формат:

SomeObject[] yourJson = gson.fromJson(jsonObject.toString(), SomeObject[].class);

Пожалуйста, попробуйте выше, если можете Вы все еще сталкиваетесь с проблемами, поделитесь своей ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...