Как обрабатывать специальный пост json с помощью Flutter

#arrays #json #flutter

Вопрос:

У меня есть сообщение JSON, которое я отправляю из своего приложения Flutter, как только в приведенном ниже коде:

 

// class connecting value from the textfield to database with json
class LoginProfile {
  int id;

String CardNumber;
String ExpiryDate;
String ExpiryYear;
String VerifyCode;


  LoginProfile({this.id = 0,this.CardNumber
    ,this.ExpiryDate,this.ExpiryYear});

  factory LoginProfile.fromJson(Map<String, dynamic> map) {
    return LoginProfile(
        id: map["id"],
        CardNumber: map["CardNumber"],ExpiryDate: map["ExpiryDate"],ExpiryYear: map["ExpiryYear"]
        );
  }

  Map<String, dynamic> toJson() {
    return {"id": id,"CardNumber": CardNumber
      ,"ExpiryDate": ExpiryDate,"ExpiryYear": ExpiryYear};
  }

  @override
  String toString() {
    return 'Profile{id: $id, "CardNumber": CardNumber
      ,"ExpiryDate": ExpiryDate,"ExpiryYear": ExpiryYear}';
  }
}

Future<bool> createProfile(LoginProfile data) async {
      response = await client.post(
        "$baseUrl",
        headers: {'Content-Type': 'application/json; charset=UTF-8'},
        body: loginProfileToJson(data),
      );
      if (response.statusCode == 201) {
        return true;
      } else {
        print(response.body);
}
}

 

Я должен опубликовать свой JSON, как показано ниже:

 {
"Registration": {
 "CardNumber":"5105105105105100",
 "ExpiryDate":"11",
 "ExpiryYear":"2023",
 "VerifyCode":"123"
 }
 }

 

По какой-то причине я не могу заставить это работать, и мне нужно опубликовать «Регистрация» в качестве объекта, как это выглядит выше.

Комментарии:

1. кодируйте свои данные json

2. Как? И Где?

Ответ №1:

Попробуйте использовать jsonEncode

 Future<bool> createProfile(LoginProfile data) async {
      response = await client.post(
        "$baseUrl",
        headers: {'Content-Type': 'application/json; charset=UTF-8'},
        body: jsonEncode(loginProfileToJson(data)),
      );
      if (response.statusCode == 201 || response.statusCode == 200) {
        return true;
      } else {
        print(response.body);
}
 
 

Комментарии:

1. Как мне разобрать «Регистрация»?

2. да, вы разберете регистрацию

3. Не могли бы вы, пожалуйста, отредактировать свой ответ на мой вопрос?

4. пожалуйста, ознакомьтесь с обновленным createProfile разделом

5. Я использовал приведенный выше код, который вы добавили, но не получил никакого ответа.