Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como carregar um arquivo json numa lista

Eu tenho uma lista de produtos:

static List<ProductModel> products_list = [
    ProductModel("A001","Bomba D´Água"),
    ProductModel("A002","Bomba D´Água"),
    ProductModel("A003","Bomba D´Água")
  ];

Eu carrego essa lista na seguinte variável:

List<ProductModel> display_list = List.from(products_list);

Esses mesmos produtos estão em um arquivo json:

[
    {
        "productCode": "A001",
        "description": "Bomba D´Água"
    },
    {
        "productCode": "A002",
        "description": "Bomba D´Água"
    },
    {
        "productCode": "A003",
        "description": "Bomba D´Água"
    }

Como faço para carregar esse json na lista display_list?

1 resposta
solução!

Olá, Celso!

Para carregar o arquivo JSON na lista display_list, você pode tentar utilizar a biblioteca dart:convert para fazer a conversão do JSON para objetos ProductModel.

Primeiro, você precisa importar a biblioteca dart:convert no seu arquivo:

import 'dart:convert';

Em seguida, você pode utilizar a função jsonDecode() para decodificar o JSON e obter uma lista de objetos Map<String, dynamic>. Depois, você pode percorrer essa lista e criar os objetos ProductModel para adicionar à lista display_list.

Segue um exemplo de como fazer isso, testa por gentileza:

import 'dart:convert';

// ...

// Carrega o JSON em uma lista de objetos Map<String, dynamic>
List<Map<String, dynamic>> jsonList = jsonDecode(jsonString);

// Percorre a lista de objetos Map<String, dynamic> e cria os objetos ProductModel
List<ProductModel> display_list = [];
for (var json in jsonList) {
  String productCode = json['productCode'];
  String description = json['description'];
  ProductModel product = ProductModel(productCode, description);
  display_list.add(product);
}

Certifique-se de substituir jsonString pela string que contém o seu JSON.

Dessa forma, você conseguirá carregar o JSON na lista display_list com os objetos ProductModel correspondentes.

Espero ter ajudado e bons estudos!