Na przykład używam tej techniki w Funkcji koszyka.
Pozwól nam dodać nowy element do koszyka.
var productArray=[];
$(document).on('click','[cartBtn]',function(e){
e.preventDefault();
$(this).html('<i class="fa fa-check"></i>Added to cart');
console.log('Item added ');
var productJSON={"id":$(this).attr('pr_id'), "nameEn":$(this).attr('pr_name_en'), "price":$(this).attr('pr_price'), "image":$(this).attr('pr_image'), "quantity":1, "discount":0, "total":$(this).attr('pr_price')};
if(localStorage.getObj('product')!==null){
productArray=localStorage.getObj('product');
productArray.push(productJSON);
localStorage.setObj('product', productArray);
}
else{
productArray.push(productJSON);
localStorage.setObj('product', productArray);
}
itemCountInCart(productArray.length);
});
Po dodaniu jakiś element do kosza - generuje tablicę json jak ten
[
{
"id": "95",
"nameEn": "New Braslet",
"price": "8776",
"image": "1462.jpeg",
"quantity": 1,
"discount": 0,
"total": "8776"
},
{
"id": "96",
"nameEn": "new braslet",
"price": "76",
"image": "1462012431497.jpeg",
"quantity": 1,
"discount": 0,
"total": "76"
},
{
"id": "97",
"nameEn": "khjk",
"price": "87",
"image": "1462012483421.jpeg",
"quantity": 1,
"discount": 0,
"total": "87"
}
]
do usuwania jakąś pozycję z koszyka.
$(document).on('click','[itemRemoveBtn]',function(){
var arrayFromLocal=localStorage.getObj('product');
findAndRemove(arrayFromLocal,"id",$(this).attr('basketproductid'));
localStorage.setObj('product', arrayFromLocal);
loadBasketFromLocalStorageAndRender();
});
//This function will remove element by specified property. In my case this is ID.
function findAndRemove(array, property, value) {
array.forEach(function(result, index) {
if(result[property] === value) {
//Remove from array
console.log('Removed from index is '+index+' result is '+JSON.stringify(result));
array.splice(index, 1);
}
});
}
I wreszcie prawdziwa odpowiedź na pytanie "Aktualizacja obiektu JSON przy użyciu JS". W moim przykładzie aktualizowanie ilości produktu i ceny całkowitej przy zmianie wartości elementu "liczba".
$(document).on('keyup mouseup','input[type=number]',function(){
var arrayFromLocal=localStorage.getObj('product');
setQuantityAndTotalPrice(arrayFromLocal,$(this).attr('updateItemid'),$(this).val());
localStorage.setObj('product', arrayFromLocal);
loadBasketFromLocalStorageAndRender();
});
function setQuantityAndTotalPrice(array,id,quantity) {
array.forEach(function(result, index) {
if(result.id === id) {
result.quantity=quantity;
result.total=(quantity*result.price);
}
});
}
JSON oznacza JavaScript Object Notation. To jest coś, co js rozumie bardzo prosto. Twoje pytanie nie dotyczy JSON. Zajmuje się wyłącznie manipulacją obiektami js. "Aktualizacja obiektu JSON przy użyciu Javascript" jest wyrażeniem moot, co tłumaczy się na "Aktualizacja obiektu JavaScript przy użyciu Javascript". – Zirak
Zirak, musisz być zabawny na przyjęciach. – stef