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);