2 votes

Obtenir une chaîne de caractères à partir d'une carte imbriquée dans Dart

Ma carte :

{Info: {name: Austin, Username: austinr}}

J'utilise cette ligne pour que la variable myName devienne "Austin".

String myName = map["name"] as String;

Cependant cette ligne semble mettre la chaîne "myName" à null. Je cherche simplement un moyen d'extraire mon nom et mon nom d'utilisateur de la carte.

Gracias

5voto

vipin agrahari Points 546

Je suis capable d'exécuter le code suivant avec succès.

 var map =  {"Info":{"name": "Austin", "Username": "austinr"}}; 
 String myString = map["Info"]["name"] as String;
 print(myString);

Le résultat est Austin comme prévu. Essayez ceci.

2voto

mehdi zarepour Points 66

De même, si vous souhaitez travailler avec des cartes dans Dart, notamment avec des clés imbriquées, vous pouvez utiliser gato également.

Méthode de base :

var map = {
  'Info': {
    'name': 'Austin',
    'Username': 'austinr',
    'address': {'city': 'New York'}
  }
};

String city = map['Info']['address']['city'] as String;
print(city);

Mais c'est un peu sale et aussi vous obtiendrez une erreur s'il n'y a pas eu la address dans votre carte.

Utilisation de Gato

import 'package:gato/gato.dart' as gato;
.
.
.

var map = {
  'info': {
    'name': 'Austin',
    'username': 'austinr',
    'address': {'city': 'New York'}
  }
};

// Get value from a map
print(gato.get<String>(map, 'info.address.city')); // New York

// Set a value to a map
map = gato.set<String>(map, 'info.address.city', 'Other City');

print(gato.get<String>(map, 'info.address.city')); // Other City

Document complet

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X