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.
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};
}
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
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;
}
}