No internet connection
  1. Home
  2. Dúvidas Gerais

Gravar e Ler Listas em JSON

Por Bruno Soares @BrunoSoares
    2022-12-23 15:57:29.698Z

    Boa tarde galera, tava procurando sobre o assunto pra salvar os players e as partidas que eu crio em uma sessão do jogo da velha e achei nessa fonte logo na primeira resposta: https://learn.microsoft.com/en-us/answers/questions/699941/read-and-process-json-file-with-c.html?sort=votes. Segue a implementação que resolveu meu problema.

    Escrita:


    Leitura:
    No caso a implementação pra outra lista segue o mesmo princípio mudando somente o nome do arquivo final no filePath. Só duas observações:
    1 - no meu caso deu um erro na desserialização de uma classe e a solução que funcionou foi declarar todos os gets e sets de todos os atributos e um construtor vazio.
    2 - Eu tive que usar essa palavra-reservada "ref" no ReadJSON pq quando usei a passagem de parâmetro pura não tava atualizando as listas criadas no código principal mesmo a leitura dentro do método acontecendo. Aí usei o "ref" e consegui enviar a lista vazia e popular ela com a leitura de forma correta.
    Resolvido no post #2, clique para visualizar
    • 6 respostas
    1. Mauricio Santana @mauriciosm
        2022-12-24 07:39:36.312Z

        Massa, Bruno!
        Devo começar em breve o jogo da velha.
        Já marca aí no tópico como solução, vai ajudar muita gente.

        1. T
          Em resposta aBrunoSoares:
          Thiago Nebuloni @thiagonebuloni
            2023-01-01 03:24:49.381Z

            Nesse método precisa usar using Newtonsoft?
            Eu tentei fazer a gravação em json mas não consegui porque tinha que fazer uma configuração na ide e aparentemente não existe como fazer no vs code.
            Então por enquanto estou fazendo gravação em txt mesmo, usando só o using (StreamWriter se...)

            Vou tentar achar outra solução pra json depois.

            1. Bruno Soares @BrunoSoares
                2023-01-02 15:48:51.242Z

                Não Thiago, eu nem tinha me atentado a isso até você falar, o VS não acusa nada mesmo usando comandos de bibliotecas que você não importou explicitamente, ele simplesmente importa automaticamente. Dei uma olhada no repositório e os imports na classe que eu realizo a operação sobre o JSON são esses:

                Se você quiser dar uma olhada melhor: https://github.com/brunosas88/tic-tac-toe-game/blob/main/Tic-Tac-Toe/Utils.cs

                Se tiver mais dúvida só flr que mesmo que eu não saiba vou dar uma procurada pra gente trocar essa ideia que saber bem serializar objetos pode vir a calhar mais tarde.

                1. TThiago Nebuloni @thiagonebuloni
                    2023-01-02 19:09:18.555Z

                    Obrigado Bruno! Vou dar uma olhada com calma e talvez já passe a usar o json mesmo.

                2. Em resposta aBrunoSoares:
                  Mattheus Henrique @MattheusHenrique
                    2023-01-03 01:55:58.551Z

                    Show estava procurando saber sobre isso, já estava achando fazer isso mais complicado do que fazer um CRUD em sí, mas é só por que estava dificil de achar conteúdo bem explicado mesmo, vou tentar fazer aqui !

                    1. L
                      Em resposta aBrunoSoares:
                      LENNAN @lennanrnz
                        2023-03-02 22:49:53.406Z

                        fiquei uma semana nisso mas agr finalmente tirou minhas duvidas