web-dev-qa-db-fra.com

comment convertir une chaîne json en objet json dans Dart flutter?

J'ai une chaîne comme ça,

{id:1, name: lorem ipsum, address: dolor set amet}

Et je dois convertir cette chaîne en json, comment puis-je le faire dans Dart flutter? je vous remercie beaucoup pour votre aide.

3
Ashtav

Vous devez utiliser json.decode. Il prend un objet json et vous permet de gérer les paires de valeurs de clés imbriquées. Je vais vous écrire un exemple

import 'Dart:convert';

// actual data sent is {success: true, data:{token:'token'}}
final response = await client.post(url, body: reqBody);

// Notice how you have to call body from the response if you are using http to retrieve json
final body = json.decode(response.body);

// This is how you get success value out of the actual json
if (body['success']) {
  //Token is nested inside data field so it goes one deeper.
  final String token = body['data']['token'];

  return {"success": true, "token": token};
}
9
forJ

Vous devez importer Dart: encode libary. Utilisez ensuite la fonction jsonDecode, qui produira une dynamique similaire à une carte

https://api.dartlang.org/stable/2.2.0/Dart-convert/Dart-convert-library.html

0

Vous pouvez également convertir le tableau JSON en liste d'objets comme suit:

String jsonStr = yourMethodThatReturnsJsonText();
Map<String,dynamic> d  = json.decode(jsonStr.trim());
List<MyModel> list = List<MyModel>.from(d['jsonArrayName'].map((x) => MyModel.fromJson(x)));

Et MyModel est quelque chose comme ceci:

class MyModel{

  String name;
  int age;

  MyModel({this.name,this.age});

  MyModel.fromJson(Map<String, dynamic> json) {
    name= json['name'];
    age= json['age'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['name'] = this.name;
    data['age'] = this.age;

    return data;
  }
}
0
Mohsen Emami