web-dev-qa-db-fra.com

La meilleure façon d'analyser un JSON en fléchette

J'essaie de charger un fichier JSON à partir d'une URL et d'analyser dans DART. J'avais donc essayé le code suivant comme suggéré de certains liens quand je vais pour cela:

   HttpRequest.getString("hellknight2.js").then((response)
   {
     var model = new JSON.parse(response);
   });

Cependant, il semble que cela ne fonctionne plus sur DART SDK version 0.4.3.5_R20602. Quelle est la meilleure façon actuelle d'obtenir un fichier JSON mappée sur un objet de Dart?

20
Fernando

Utilisez simplement JSON du Dart:convert paquet . Voici un exemple :

import 'Dart:convert';

main() {
  final myJsonAsString = '{"a": 1, "b": "c"}';
  final decoded = json.decode(myJsonAsString);
  ....
}

Voir PARSING JSON pour plus de détails.

18

dans mon cas

Json.decode

n'a pas fonctionné.

au lieu de cela que je devais utiliser :

import 'Dart:convert' as JSON;

final json=JSON.jsonDecode(myJsonAsString);
4
Julien

Cela dépend de beaucoup de choses.

Le texte JSON que vous obtenez est un tableau ou une carte?

Vous pouvez essayer avec:

Map model = new parse(response);

Ou

List model = new parse(response);

mais vous devez importer JSONObject de Chris Buckett dans votre colis

import "package:json_object/json_object.Dart";

Vous pouvez l'installer à partir de PUBSPEC en ajoutant cette dépendance.

json_object
2
DaviDeMo

voici ma solution :) Au début, vous devez importer:

     import 'Dart:convert';

     var res = json.decode(response.body);

ensuite, vous pouvez obtenir des valeurs par clé, comme ci-dessous:

     print('res["message"]');
1
Irakli Kardava

Il y a un nouveau paquet de pub pour cela:

Victor Savkin - Serializers .

Je ne l'ai pas utilisé mais me semble que cela vous suites. Essaye le

1
Jasper