JSON 개체에 새 배열 요소 추가
JSON 파일에서 읽은 JSON 형식 개체가 있으며 teamJ라는 변수에 있습니다.손, 그건 이렇게 생겼죠.
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}
어레이에 다음과 같은 새 항목을 추가합니다.
{"teamId":"4","status":"pending"}
끝나다
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}
파일을 다시 쓰기 전에.새로운 요소에 추가하는 좋은 방법은 무엇입니까?가까이 갔는데 큰따옴표가 다 빠졌어요.SO에 대한 좋은 답을 찾았지만 이 사건을 다루는 사람은 아무도 없습니다.어떤 도움이라도 감사합니다.
JSON은 표기에 불과합니다.원래 JavaScript 오브젝트에 변경을 적용한 후 다시 JSON에 적용할 수 있도록 원하는 변경을 하기 위해서입니다.
var jsonStr = '{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
var obj = JSON.parse(jsonStr);
obj['theTeam'].push({"teamId":"4","status":"pending"});
jsonStr = JSON.stringify(obj);
// "{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}"
var Str_txt = '{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
마지막 위치에 추가하려면 다음을 사용합니다.
var parse_obj = JSON.parse(Str_txt);
parse_obj['theTeam'].push({"teamId":"4","status":"pending"});
Str_txt = JSON.stringify(parse_obj);
Output //"{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}"
첫 번째 위치에 추가하려면 다음 코드를 사용합니다.
var parse_obj = JSON.parse(Str_txt);
parse_obj['theTeam'].unshift({"teamId":"4","status":"pending"});
Str_txt = JSON.stringify(parse_obj);
Output //"{"theTeam":[{"teamId":"4","status":"pending"},{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}"
어레이의 특정 위치에 추가하려면 다음과 같이 하십시오.
parse_obj['theTeam'].splice(2, 0, {"teamId":"4","status":"pending"});
Output //"{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"4","status":"pending"},{"teamId":"3","status":"member"}]}"
위의 코드 블록은 두 번째 요소 뒤에 요소를 추가합니다.
먼저 JSON 오브젝트를 해석한 후 아이템을 추가할 수 있습니다.
var str = '{"theTeam":[{"teamId":"1","status":"pending"},
{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
var obj = JSON.parse(str);
obj['theTeam'].push({"teamId":"4","status":"pending"});
str = JSON.stringify(obj);
마지막으로 JSON.jring을 JSON으로 되돌립니다.
제 경우 JSON 오브젝트에 기존 어레이가 없었기 때문에 먼저 어레이 요소를 작성한 후 요소를 푸시해야 했습니다.
elementToPush = [1, 2, 3]
if (!obj.arr) this.$set(obj, "arr", [])
obj.arr.push(elementToPush)
(이 답변은 이 질문과는 관련이 없을 수 있지만 다른 사람에게 도움이 될 수 있습니다.)
예를 들어 아이템을 바구니에 추가하기 위한 요소 같은 버튼과 localStorage에 저장하기 위한 적절한 속성이 있습니다.
'<a href="#" cartBtn pr_id='+e.id+' pr_name_en="'+e.nameEn+'" pr_price="'+e.price+'" pr_image="'+e.image+'" class="btn btn-primary"><i class="fa fa-shopping-cart"></i>Add to cart</a>'
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')};
if(localStorage.getObj('product')!==null){
productArray=localStorage.getObj('product');
productArray.push(productJSON);
localStorage.setObj('product', productArray);
}
else{
productArray.push(productJSON);
localStorage.setObj('product', productArray);
}
});
Storage.prototype.setObj = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObj = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
어레이 결과에 JSON 개체를 추가한 후 (LocalStorage에서) 다음 작업을 수행합니다.
[{"id":99","nameEn":"제품명1", "가격":767", "image":1462012597217.jpeg" , {"id":93", "nameEn":":"제품명2", "price":76", "image":1449637106.jpeg", "94":en":"
이 작업 후 Java에서 목록으로 데이터를 쉽게 서버로 보낼 수 있습니다.
전체 코드 예는 다음과 같습니다.
localStorage를 사용하여 간단한 카트를 보관하려면 어떻게 해야 합니까?
산포 연산자 사용
array1 = [
{
"column": "Level",
"valueOperator": "=",
"value": "Organization"
}
];
array2 = [
{
"column": "Level",
"valueOperator": "=",
"value": "Division"
}
];
array3 = [
{
"column": "Level",
"operator": "=",
"value": "Country"
}
];
console.log(array1.push(...array2,...array3));
언급URL : https://stackoverflow.com/questions/18884840/adding-a-new-array-element-to-a-json-object
'sourcetip' 카테고리의 다른 글
부트스트랩 탭에서 AJAX 로드를 사용하는 방법 (0) | 2023.04.03 |
---|---|
일정 기간 비활성 상태가 지속된 후 자동으로 페이지를 다시 로드하는 방법 (0) | 2023.04.03 |
TypeScript에서 JSON 파일 가져오기 (0) | 2023.04.03 |
React-js는 라벨의 'for' 속성을 무시합니다. (0) | 2023.04.03 |
뷰 폴더 밖에서 라라벨 블레이드를 사용할 수 있습니까? (0) | 2023.04.03 |