Como Adicionar Novas Linhas/Chaves a Um Json?

7 respostas Resolvido
nick1

Recentemente Venho criando Vários Posts Aqui No Guj sobre Json Pois realmente acho bastante fácil Criar Sites/projetos utilizando Json , Então eu fiquei pensando se a como Adicionar Novas Linhas/Chaves a Um Json exemplo dados.json:

let User_id_1 = 
{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "estado": "São Paulo", 
}

ai eu queria criar um formulário que quando fosse enviado adicionasse um nova linha a o Json que seria Cor Favorita ai iria ficar assim:

let User_id_1 = 
{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "estado": "São Paulo", 
    "Cor Preferida": "Verde"
}

Como Faço Isso?

7 Respostas

hugokotsubo

Só pra ser chato e pedante, vamos deixar claro que o que você tem aí não é um JSON.

JSON é apenas um formato de dados. A sigla “JSON” significa “JavaScript Object Notation” (Notação de Objeto JavaScript), e é um formato baseado/inspirado na sintaxe do JavaScript. Mas nem todo código JavaScript é um JSON válido.

Quando você faz isso:

let User_id_1 = 
{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "estado": "São Paulo", 
}

Na verdade está criando um objeto em JavaScript e colocando-o na variável User_id_1. Claro que a sintaxe é igual ao que um arquivo JSON teria (a única diferença é que não teria a variável):

{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "estado": "São Paulo", 
}

Ou seja, o texto acima é um JSON - que também é um código JavaScript válido, mas o oposto nem sempre é verdade. Por exemplo, em JavaScript eu posso ter isso:

let User_id_1 = 
{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "data_nascimento": new Date(1980, 1, 2),
    "algum atributo qualquer": function () { console.log('bla') }
}

Mas isso não é um JSON válido. A sintaxe do formato JSON não aceita valores como new Date(1980, 1, 2) e muito menos a function que foi definida acima. O valor só pode ser string, número, boolean, null, um array ou um objeto.

Claro que qualquer objeto pode ser convertido para JSON (desde que se transforme todos os valores para tipos válidos), mas quando você tem código JavaScript, você tem objetos, e não “um JSON”.


Dito isso, para adicionar um novo atributo a um objeto, basta fazer assim:

let User_id_1 = 
{
    "nome": "Link",
    "idade": 17,
    "cidade": "São Paulo",
    "estado": "São Paulo", 
};

User_id_1['Cor Preferida'] = 'Verde';

console.log(User_id_1); // imprima o objeto para ver o novo atributo que foi adicionado
rodriguesabner

@nick1, vc está criando vários posts, isso não é problema.

O problema é vc abrir o post e não dar retorno se conseguiu resolver ou não, se a resposta da pessoa te ajudou, marca como resolvida, ou ao menos agradece.

Senão, vai chegar no dia que vc vai postar alguma coisa e ninguem vai te responder, pq vc pergunta e some.


Alguns exemplos do que eu disse:

<aside class="quote quote-modified" data-post="1" data-topic="414759">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/user_avatar/www.guj.com.br/nick1/40/111713_2.png" class="avatar">
    <a href="/t/como-receber-imagens-de-um-json/414759">Como Receber Imagens de Um Json?</a> <a class="badge-wrapper  bullet" href="/c/front-end/javascript">JavaScript</a>
  </div>
  <blockquote>
    Olá estou criando um site que utiliza Muito Json eu quero pegar imagen de um json que está assim: 
let User_id_1 = '{
    "nome": "User 1",
    "idade": 15,
    "cidade": "São Paulo",
    "estado": "SP",
    "Img": "img.jpg",
    "Friends": "1",
    "Token": "RQcbzOPgsvaFsnlsVKa9wO05"
}'

ai eu criei uma Let que faz o JSON.parse. 
let get_User_id_1 = JSON.parse(User_id_1);

e como vocês Viram Tenho um atributo em meu json img e eu tenho uma tag img eu meu html com id Minha_imagem então eu criei 
  </blockquote>
</aside>


<aside class="quote quote-modified" data-post="1" data-topic="413326">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/user_avatar/www.guj.com.br/nick1/40/111713_2.png" class="avatar">
    <a href="/t/afinal-uma-i-a-e-um-bando-de-if-e-else/413326">Afinal uma I.A é um bando de If e else?</a> <a class="badge-wrapper  bullet" href="/c/front-end/javascript">JavaScript</a>
  </div>
  <blockquote>
    olá recentemente eu me deparei com vários desses memes sobre inteligência artificial: 
 <a class="lightbox" href="/uploads/3X/d/c/dce68f6a88907c24ef826fae7bdd07196eb5d51a.jpeg.webp" data-download-href="/uploads/default/dce68f6a88907c24ef826fae7bdd07196eb5d51a" title="image.jpg">[image]</a>
tradução: introdução de uma cláusula condicional 
eu como  uso a programação para estudo e conhecimento e nunca programei uma I.A tão avançada mais eu acho difícil uma  I.A ser  if e else pois iria ter que ter varias possibilidades e programar desse jeito iria sobrecarregar o servidor , por isso eu acho que o melhor é usar o machine learning , fazer isso é o mais correto?
  </blockquote>
</aside>


<aside class="quote" data-post="1" data-topic="412959">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/user_avatar/www.guj.com.br/nick1/40/111713_2.png" class="avatar">
    <a href="/t/como-obter-o-ip-do-usuario-pelo-javascript/412959">Como obter o IP do usuário pelo javascript?</a> <a class="badge-wrapper  bullet" href="/c/front-end/javascript">JavaScript</a>
  </div>
  <blockquote>
    Tem como obter o endereço do IP do usuário pelo javascript tem como? Poderia redirecionar o usuário caso IP dele não começar com 200 que é o IP do Brasil?
  </blockquote>
</aside>

Obrigado e bons estudos.

nick1

Mais Como Salvo Isso No Servidor?

hugokotsubo

Você tem que dar mais contexto. De onde vem os dados e para onde/como vão?
Quem lê ou recebe esses dados? Quem modifica e quem envia para o servidor? O servidor grava em arquivos ou no banco? etc etc etc…

Tem trocentas formas de fazer, mas depende do que vc quer/precisa.

nick1

Quem modifica e quem envia para o servidor R:será o usuário! O servidor grava em arquivos ou no banco R:todas as Informações serão gravadas em arquivos!

hugokotsubo
Solucao aceita

Como eu já disse, tem muitas formas de fazer.

O usuário envia, mas como? Em qual formato? Ele manda o JSON inteiro, só a informação que quer adicionar? Como vc sabe qual o JSON que vai ser mudado? É um único JSON pra tudo, cada usuário tem o(s) seu(s)? etc etc etc…

De forma bem resumida, o usuário envia informação (seja lá em qual formato que vc definiu que o servidor deve receber), aí vc pega os dados, procura pelo JSON que vai ser modificado, faz as alterações e salva de volta. Toda linguagem tem funções para manipular arquivos e JSON, pesquise como é na que você está usando.

Se você não tem nada feito ainda, sugiro começar estudando primeiro como fazer para subir um servidor básico com um formulário. Depois você começa a se preocupar com salvar os dados. Um passo de cada vez, sem pular etapas, sem querer fazer tudo de uma vez.

Se você já tem algo feito, dê mais detalhes do que já tem (qual servidor/framework/linguagem, como está o formulário, algum código, etc).

Sem mais detalhes, é o que dá para sugerir (tem gente que gosta de sugerir: “use linguagem X/framework Y”, mas eu não gosto de sugerir coisas aleatórias que podem não te servir).

nick1

Obrigado Vou Estudar Mais e fazer Perguntas Melhores Que realmente Vão ajudar a mim e principalmente a outros usuários que buscam a mesma resposta!

Criado 1 de março de 2021
Ultima resposta 1 de mar. de 2021
Respostas 7
Participantes 3