[javascript] 배열을 JSON으로 변환

var cars = [2,3,..]몇 가지 정수를 보유 하는 배열 이 있습니다. 배열에 몇 가지 값을 추가했지만 이제 jQuery의 .get메소드 를 통해이 배열을 페이지로 보내야합니다 . 전송하기 위해 JSON 객체로 변환하려면 어떻게해야합니까?



답변

이전 버전과의 호환성을위한 스크립트 :
https://github.com/douglascrockford/JSON-js/blob/master/json2.js

그리고 전화 :

var myJsonString = JSON.stringify(yourArray);

참고 : JSON 객체는 이제 대부분의 최신 웹 브라우저 (IE 8 이상)의 일부입니다. 전체 목록 은 caniuse 를 참조 하십시오. 크레딧은 다음과 같습니다 : @Spudley


답변

나는 그렇게했다 :

만약 내가 가지고 있다면:

var jsonArg1 = new Object();
    jsonArg1.name = 'calc this';
    jsonArg1.value = 3.1415;
var jsonArg2 = new Object();
    jsonArg2.name = 'calc this again';
    jsonArg2.value = 2.73;

var pluginArrayArg = new Array();
    pluginArrayArg.push(jsonArg1);
    pluginArrayArg.push(jsonArg2);

pluginArrayArg (순수한 자바 스크립트 배열)를 JSON 배열로 변환하는 방법 :

var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))


답변

와우, 요즘 훨씬 쉬워 진 것 같습니다 … 3 가지 방법 :

json = { ...array };

json = Object.assign({}, array);

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});


답변

json2 라이브러리를 사용하기로 결정하고 “순환 데이터 구조”에 대한 오류가 발생했습니다.

json2에게 복잡한 객체를 변환하는 방법을 알려 주면 해결되었습니다. 지금 작동 할뿐만 아니라 필요한 필드 만 포함했습니다. 내가 한 방법은 다음과 같습니다.

OBJ.prototype.toJSON = function (key) {
       var returnObj = new Object();
       returnObj.devid = this.devid;
       returnObj.name = this.name;
       returnObj.speed = this.speed;
       returnObj.status = this.status;
       return returnObj;
   }


답변

또는 배열을 객체로 정의하십시오. (var cars = {};) 그런 다음 json으로 변환 할 필요가 없습니다. 이것은 귀하의 예에서는 실용적이지 않지만 나를 위해 잘 작동했습니다.


답변

다른 방법은 다음과 같습니다.

        var json_arr = {};
        json_arr["name1"] = "value1";
        json_arr["name2"] = "value2";
        json_arr["name3"] = "value3";

        var json_string = JSON.stringify(json_arr);


답변

요청한 것과 같은 객체가 하나만 있으면 다음이 작동합니다.

var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);