반응형
속성 이름에 대한 변수를 사용하여 객체 생성
이 질문에 이미 답변이 있습니다.
객체 생성을 위해 객체 리터럴 속성에서 변수 이름을 사용할 수 있습니까?
예
function createJSON (propertyName){
return { propertyName : "Value"};
}
var myObject = createJSON("myProperty");
console.log(myObject.popertyName); // prints "value"
console.log(myObject.myProperty); // Does not exist
속성 이름에 변수를 사용하려면 계산 된 속성 이름을 사용할 수 있습니다 . 대괄호 사이에 변수 이름을 넣으십시오.
var foo = "bar";
var ob = { [foo]: "something" }; // ob.bar === "something"
Internet Explorer 지원을 원하면 ES5 접근 방식을 사용해야합니다 (위와 같이 최신 구문을 작성한 다음 Babel 을 적용하여 얻을 수 있음 ).
먼저 객체를 만든 다음 대괄호 표기법을 사용하여 속성을 추가합니다 .
var foo = "bar";
var ob = {};
ob[foo] = "something"; // === ob.bar = "something"
프로그래밍 방식으로 JSON을 생성하려면 JSON 형식을 따르는 문자열로 객체를 직렬화해야합니다. 예를 들어 JSON.stringify
방법으로 .
ES6는 계산 된 속성 이름을 도입하여 다음을 수행 할 수 있습니다.
function CreateJSON (propertyName){
var myObject = { [propertyName] : "Value"};
}
브라우저 지원은 현재 미미합니다.
다음과 같이 할 수 있습니다.
var myObject = {};
CreateProp("myProperty","MyValue");
function CreateProp(propertyName, propertyValue)
{
myObject[propertyName] = propertyValue;
alert(myObject[propertyName]); // prints "MyValue"
};
그래도 나는이 구문을 많이 선호합니다.
function jsonObject()
{
};
var myNoteObject = new jsonObject();
function SaveJsonObject()
{
myNoteObject.Control = new jsonObject();
myNoteObject.Control.Field1= "Fred";
myNoteObject.Control.Field2= "Wilma";
myNoteObject.Control.Field3= "Flintstone";
myNoteObject.Control.Id= "1234";
myNoteObject.Other= new jsonObject();
myNoteObject.Other.One="myone";
};
그런 다음 다음을 사용할 수 있습니다.
SaveJsonObject();
var myNoteJSON = JSON.stringify(myNoteObject);
참고 : http://www.json.org/js.html 에서 json2.js를 사용합니다.
적절할 수있는 한 가지 (이제 JSON 기능은 최신 브라우저에 공통적이며 json2.js는 완벽하게 유효한 폴 백임) JSON 문자열을 생성 한 다음 구문 분석하는 것입니다.
function func(prop, val) {
var jsonStr = '{"'+prop+'":'+val+'}';
return JSON.parse(jsonStr);
}
var testa = func("init", 1);
console.log(testa.init);//1
JSON 속성 이름은 큰 따옴표로 묶어야합니다.
참고URL : https://stackoverflow.com/questions/3153969/create-object-using-variables-for-property-name
반응형
'developer tip' 카테고리의 다른 글
Python : 수퍼 클래스에서 서브 클래스를 만들려면 어떻게해야합니까? (0) | 2020.10.11 |
---|---|
Visual Studio가 자동 단축키 전에 주요 이벤트를 포착하는 이유는 무엇입니까? (0) | 2020.10.11 |
SimpleXml을 문자열로 (0) | 2020.10.11 |
cURL 억제 응답 본문 (0) | 2020.10.10 |
내 비동기 함수가 Promise {를 반환하는 이유는 무엇입니까? (0) | 2020.10.10 |