Programming

JavaScript를 사용하여 JSON 속성에 새 속성 (요소) 추가

procodes 2020. 2. 21. 22:35
반응형

JavaScript를 사용하여 JSON 속성에 새 속성 (요소) 추가


JavaScript를 사용하여 JSON 객체에 새 속성 (요소)을 어떻게 추가합니까?


JSON은 JavaScript Object Notation의 약어입니다. JSON 객체는 실제로 나타내는 객체로 바뀌지 않은 문자열입니다.

JS의 기존 객체에 속성을 추가하려면 다음을 수행하십시오.

object["property"] = value;

또는

object.property = value;

상황에 따라 정확히 수행해야하는 것과 같은 추가 정보를 제공하면보다 맞춤화 된 답변을 얻을 수 있습니다.


var jsonObj = {
    members: 
           {
            host: "hostName",
            viewers: 
            {
                user1: "value1",
                user2: "value2",
                user3: "value3"
            }
        }
}

var i;

for(i=4; i<=8; i++){
    var newUser = "user" + i;
    var newValue = "value" + i;
    jsonObj.members.viewers[newUser] = newValue ;

}

console.log(jsonObj);

JSON 객체는 단순히 자바 스크립트 객체이므로 Javascript는 프로토 타입 기반 언어이므로 도트 표기법을 사용하여 처리하면됩니다.

mything.NewField = 'foo';

이 게시물에 감사드립니다. 유용한 무언가를 추가하고 싶습니다.

IE의 경우 사용하는 것이 좋습니다

object["property"] = value;

IE의 일부 특수 단어로 인해 오류가 발생할 수 있기 때문에 구문.

예를 들면 :

object.class = 'value';

" class "가 특별한 단어 이기 때문에 이것은 IE에서 실패합니다 . 나는 이것과 몇 시간을 보냈다.


ECMAScript 2015에서는 스프레드 구문 (… 3 개 점)을 사용할 수 있습니다.

let  people = {id: 4 ,firstName: 'John'};
people = {...people, secondName:'Forget'};

하위 객체를 추가 할 수 있습니다.

people = {...people, city:{estate: 'Alabama'}};

결과는 다음과 같습니다.

{  
   "id":4,
   "firstName":"John",
   "secondName":"Forget",
   "city":{  
      "estate":"Alabama"
   }
}

객체를 병합 할 수도 있습니다.

var mergedObj = { ...obj1, ...obj2 };

당신은 또한 사용할 수 있습니다 Object.assign에서 ECMAScript 2015. 또한 중첩 속성을 한 번에 추가 할 수도 있습니다. 예 :

const myObject = {};

Object.assign(myObject, {
    firstNewAttribute: {
        nestedAttribute: 'woohoo!'
    }
});

추신 : 이것은 할당 된 속성으로 기존 객체를 무시하지 않습니다. 대신 추가됩니다. 그러나 기존 속성에 값을 할당하면 값이 무시됩니다.


extend: function(){
    if(arguments.length === 0){ return; }
    var x = arguments.length === 1 ? this : arguments[0];
    var y;

    for(var i = 1, len = arguments.length; i < len; i++) {
        y = arguments[i];
        for(var key in y){
            if(!(y[key] instanceof Function)){
                x[key] = y[key];
            }
        }           
    };

    return x;
}

여러 json 객체를 확장합니다 (함수 무시).

extend({obj: 'hej'}, {obj2: 'helo'}, {obj3: {objinside: 'yes'}});

단일 json 객체가 생성됩니다


extend 함수를 사용하여 json에 새 json 객체를 추가 할 수도 있습니다 .

var newJson = $.extend({}, {my:"json"}, {other:"json"});
// result -> {my: "json", other: "json"}

확장 기능에 매우 유용한 옵션은 재귀 병합입니다. 첫 번째 매개 변수로 실제 값을 추가하기 만하면됩니다 (추가 옵션은 설명서를 참조하십시오). 예,

var newJson = $.extend(true, {}, {
    my:"json",
    nestedJson: {a1:1, a2:2}
}, {
    other:"json",
    nestedJson: {b1:1, b2:2}
});
// result -> {my: "json", other: "json", nestedJson: {a1:1, a2:2, b1:1, b2:2}}

용도 $.extend()JQuery와 같은 :

token = {_token:window.Laravel.csrfToken};
data = {v1:'asdass',v2:'sdfsdf'}
dat = $.extend(token,data); 

나는 당신이 그들을 제공 바랍니다.


for(var i=0;i<JsonObject.length;i++){
                    alert("inside forloop");
                    var dataArray = JsonObject[i];
                    alert(dataArray["data"]);

            }

참고 URL : https://stackoverflow.com/questions/736590/add-new-attribute-element-to-json-object-using-javascript



반응형