Eu tenho um objeto de formato JSON que li de um arquivo JSON que tenho em uma variável chamada teamJSON, que se parece com isso:
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}
Quero adicionar um novo item à matriz, como
{"teamId":"4","status":"pending"}
para acabar com
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}
antes de voltar a gravar no arquivo. Qual é uma boa maneira de adicionar ao novo elemento? Cheguei perto, mas todas as aspas duplas foram escapadas. Procurei uma boa resposta no SO, mas nenhuma cobre totalmente esse caso. Qualquer ajuda é apreciada.
javascript
json
Charles Wyke-Smith
fonte
fonte
yourObj.theTeam.push({"teamId":"4","status":"pending"});
teamJSON
variável? É uma string JSON,'{"theTeam":[...]}'
ou seja, um literal de objeto real? Dica: useconsole.log(typeof teamJSON)
Respostas:
JSON é apenas uma notação ; para fazer a alteração desejada
parse
, para que você possa aplicar as alterações a um Objeto JavaScript nativo e , em seguida,stringify
retornar ao JSONfonte
teamJSON
. Em nenhum momento é mencionada uma cadeia de caracteres.Se você deseja adicionar na última posição , use o seguinte:
Se você deseja adicionar na primeira posição , use o seguinte código:
Qualquer pessoa que queira adicionar em uma determinada posição de uma matriz tenta o seguinte:
O bloco de código acima adiciona um elemento após o segundo elemento.
fonte
Primeiro, precisamos analisar o objeto JSON e, em seguida, podemos adicionar um item.
Finalmente, JSON.stringify o obj de volta ao JSON
fonte
Por exemplo, aqui está um elemento como botão para adicionar item à cesta e atributos apropriados para salvar em localStorage.
Depois de adicionar o objeto JSON ao resultado da matriz, é (em LocalStorage):
[{"id": "99", "nameEn": "Product1", "price": "767", "image": "1462012597217.jpeg"}, {"id": "93", "nameEn" : "Nome do produto2", "preço": "76", "imagem": "1461449637106.jpeg"}, {"id": "94", "nameEn": "Nome do produto3", "preço": "87" , "imagem": "1461449679506.jpeg"}]
Após esta ação, você pode enviar dados para o servidor facilmente como Lista em Java
O exemplo de código completo está aqui
Como faço para armazenar um carrinho simples usando localStorage?
fonte
No meu caso, meu objeto JSON não possuía nenhuma matriz existente, então tive que criar o elemento da matriz primeiro e depois pressionar o elemento.
fonte
Suponha que já tenhamos dados na variável
alreadyData
;fonte