dart cadena JSON convertir a cadena de lista

Resuelto Denis Ramdan asked hace 6 años • 5 respuestas

Tengo una API que llama a la matriz json String de la siguiente manera:

[
  "006.01.01",
  "006.01.01 1090",
  "006.01.01 1090 1090.950",
  "006.01.01 1090 1090.950 052",
  "006.01.01 1090 1090.950 052 A",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 B",
  "006.01.01 1090 1090.950 052 B 521211",
  "006.01.01 1090 1090.950 052 B 521211",
  "006.01.01 1090 1090.994",
  "006.01.01 1090 1090.994 001",
  "006.01.01 1090 1090.994 001 A",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111"
]

Tengo la intención de convertir el json a la Lista en el dardo. Probé el siguiente script:

json.decode(response.body).cast<List<String>();

pero no funcionó, ¿cómo debería ser correcto el guión?

Denis Ramdan avatar Nov 19 '18 21:11 Denis Ramdan
Aceptado

El resultado de analizar una lista JSON es un archivo List<dynamic>. El tipo de devolución jsonDecodees simplemente dynamic.

Puedes convertir dicha lista a un List<String>as

List<String> stringList = (jsonDecode(input) as List<dynamic>).cast<String>();

También puedes usarlo como List<dynamic>y luego asignar cada valor a String:

List<dynamic> rellyAStringList = jsonDecode(input);
for (String string in reallyAStringList) { ... }

El efecto es aproximadamente el mismo: se comprueba que cada elemento sea una cadena cuando se elimina de la lista.

lrn avatar Nov 20 '2018 07:11 lrn

Convertir datos Json a lista

List<String> data = [
   "006.01.01",
   "006.01.01 1090",
   "006.01.01 1090 1090.950",
   "006.01.01 1090 1090.950 052",
   "006.01.01 1090 1090.950 052 A",
   "006.01.01 1090 1090.950 052 A 521219",
   "006.01.01 1090 1090.950 052 A 521219",
   "006.01.01 1090 1090.950 052 A 521219",
   "006.01.01 1090 1090.950 052 A 521219",
   "006.01.01 1090 1090.950 052 A 521219",
   "006.01.01 1090 1090.950 052 B",
   "006.01.01 1090 1090.950 052 B 521211",
   "006.01.01 1090 1090.950 052 B 521211",
   "006.01.01 1090 1090.994",
   "006.01.01 1090 1090.994 001",
   "006.01.01 1090 1090.994 001 A",
   "006.01.01 1090 1090.994 001 A 511111",
   "006.01.01 1090 1090.994 001 A 511111",
   "006.01.01 1090 1090.994 001 A 511111",
   "006.01.01 1090 1090.994 001 A 511111"
];

//your json string
String jsonString = json.encode(data);

//convert json string to list
List<String> newData = List<String>.from(json.decode(jsonString));
vishwajit76 avatar Jul 18 '2021 11:07 vishwajit76

Prueba este. Espero eso ayude.

import 'dart:convert';

void main() {
  String jsonResponse = '''
    ["006.01.01",
    "006.01.01 1090",
    "006.01.01 1090 1090.950",
    "006.01.01 1090 1090.950 052",
    "006.01.01 1090 1090.950 052 A",
    "006.01.01 1090 1090.950 052 A 521219",
    "006.01.01 1090 1090.950 052 A 521219",
    "006.01.01 1090 1090.950 052 A 521219",
    "006.01.01 1090 1090.950 052 A 521219",
    "006.01.01 1090 1090.950 052 A 521219",
    "006.01.01 1090 1090.950 052 B",
    "006.01.01 1090 1090.950 052 B 521211",
    "006.01.01 1090 1090.950 052 B 521211",
    "006.01.01 1090 1090.994",
    "006.01.01 1090 1090.994 001",
    "006.01.01 1090 1090.994 001 A",
    "006.01.01 1090 1090.994 001 A 511111",
    "006.01.01 1090 1090.994 001 A 511111",
    "006.01.01 1090 1090.994 001 A 511111",
    "006.01.01 1090 1090.994 001 A 511111"]
  ''';

  dynamic jsonParsed = json.decode(jsonResponse);

//   print(jsonParsed);

  print(jsonParsed[5]);
}
Sagar Bahadur Tamang avatar Nov 19 '2018 14:11 Sagar Bahadur Tamang