source

JSON 개체를 만들고 복제하는 방법

factcode 2023. 3. 15. 19:59
반응형

JSON 개체를 만들고 복제하는 방법

JSON(JS) 오브젝트를 만들고 복제하려면 어떻게 해야 할까요?

이게 내가 하는 일이고 마법처럼 작동해

if (typeof JSON.clone !== "function") {
    JSON.clone = function(obj) {
        return JSON.parse(JSON.stringify(obj));
    };
}

그냥 해

var x = {} //some json object here
var y = JSON.parse(JSON.stringify(x)); //new json object here

ES6 기준.Object.assign을 사용하는 것이 좋습니다.

newjsonobj = Object.assign({}, jsonobj, {})

첫 번째 인수의 항목은 기존 개체를 변환하고 세 번째 인수는 반환되는 새 개체의 변경 사항입니다.

ES7에서는 확산 연산자를 사용할 것을 제안한다.

newjsonobj = {...jsonobj}

이것은 JSON을 해석하여 코드에서 여러 번 재사용할 때 자주 볼 수 있는 문제입니다.또한 원래 JSON 문자열에서 매번 재파싱이 수행되지 않도록 해야 합니다.serialize/parse어느 쪽이 효율적이지 않은 방법인가.

따라서 파싱된 오브젝트를 조정하고 싶은 경우 원본은 변경하지 않고 서버(NodeJs) 또는 클라이언트 javascript 코드 모두에서 다음 함수를 사용합니다.jQueryclone함수는 함수, regexp 등의 케이스를 취급하기 때문에 효율이 떨어집니다.다음 함수는 JSON이 지원하는 유형(null, undefined, number, string, 배열 및 객체)만 처리합니다.

function cloneJSON(obj) {
    // basic type deep copy
    if (obj === null || obj === undefined || typeof obj !== 'object')  {
        return obj
    }
    // array deep copy
    if (obj instanceof Array) {
        var cloneA = [];
        for (var i = 0; i < obj.length; ++i) {
            cloneA[i] = cloneJSON(obj[i]);
        }              
        return cloneA;
    }                  
    // object deep copy
    var cloneO = {};   
    for (var i in obj) {
        cloneO[i] = cloneJSON(obj[i]);
    }                  
    return cloneO;
}

Q1: javascript/jquery에서 JSON 개체를 만드는 방법은 무엇입니까?

Javascript 개체를 만드는 방법은 매우 간단합니다.

var user = {}; // creates an empty user object
var user = {firstName:"John", lastName:"Doe"}; // creates a user by initializing 
// its firstName and lastName properties.

작성 후 오브젝트에 다음과 같이 필드를 추가할 수 있습니다.user.age = 30;.

개체를 JSON 문자열로 사용하는 경우 빌트인을 사용하여 개체를 JSON 개체로 변환할 수 있습니다.JSON.parse(yourJsonString)함수 또는 jQuery의$.parseJSON(yourJsonString)기능.

Q2: javascript/jquery에서 JSON 개체를 복제하려면 어떻게 해야 합니까?

JSON 오브젝트를 복제하는 방법은 jQuery의 확장 기능입니다.예를 들어 다음과 같이 사용자 개체의 복제본을 생성할 수 있습니다.

var cloneUser = $.extend(true, {}, {firstName:"John", lastName:"Doe"});

첫 번째 매개 변수는 복제 개체가 원본의 얕은 복사본인지 아니면 깊은 복사본인지 지정합니다(Wiki의 개체 복사본 참조).

다른 JSON 복제 방법을 보려면 이 문서를 참조하십시오.

javascript/jquery에서 JSON 오브젝트를 작성하려면 어떻게 해야 합니까?

JSON 오브젝트만한 것은 없습니다.JSON은 JavaScript Object Notation의 약자로 기본적으로 JavaScript의 객체 리터럴과 유사한 정보를 인코딩하는 문자열입니다.

다만, 이러한 부호화(스트링이 되는 것)를 작성할 수 있습니다.JSON.stringify(object)JavaScript의 JSON을 참조해 주세요.이러한 문자열을 수동으로 작성할 수도 있지만 오류가 발생하기 쉬우므로 권장하지 않습니다.

javascript/jquery에서 JSON 개체를 복제하려면 어떻게 해야 합니까?

그냥 문자열이기 때문에:

var jsonString2 = jsonString;

javascript 배열로 더 이상 작업할 수 없습니다.

JSON은 데이터를 교환하는 형식이며 애플리케이션에서 사용할 수 있는 데이터 구조가 아닙니다.


JSON, JS의 객체 JS의 어레이에 대해 자세히 알아보실 수 있습니다.

아래와 같이 JSON 오브젝트를 복제할 수 있습니다.

EmployeeDetails = 
{
  Name:"John Deer",
  Age:29,
  Company:"ABC Limited."

}

1개의 클론 함수를 만듭니다.

function clonning(Employee)
{
  // conversion from Object to String
  var EmployeeString = JSON.stringify(Employee);

  // conversion from String to Object type

  var EmployeeConvertedObject = JSON.parse(EmployeeString);

  // printing before changing prperty value.

  console.log(EmployeeConvertedObject);

  // modifying EmployeeConvertedObject property value 

  EmployeeConvertedObject.Name="Kelvin Bob";

   // printing After changing prperty value.

  console.log(EmployeeConvertedObject);

  // Now printing original json object.

  console.log(Employee);

  // Here original JSON object is not affecting. Only Cloned object affecting.


}

[콜(Now Call)]기능입니다

clonning(EmployeeDetails);

결과:

clonning(EmployeeDetails)
VM212:22 {Name: "John Deer", Age: 29, Company: "ABC Limited."}
VM212:30 {Name: "Kelvin Bob", Age: 29, Company: "ABC Limited."}
VM212:34 {Name: "John Deer", Age: 29, Company: "ABC Limited."}

JSONOBJECT EmailData에 데이터가 포함되어 있다고 가정합니다.동일한 데이터를 다른 개체(즉, 데이터 복제)에 포함하려면 다음과 같은 작업을 수행할 수 있습니다.

JSONOBJECT clone_EmailData=new JSONOBJECT(EmailData.toString());

위의 문장은 동일한 데이터를 가진 새 개체를 제공하며 새 개체는 EmailData 개체를 참조하지 않습니다.

언급URL : https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object

반응형