이 글은 자바스크립트에서 js 객체와 JSON 형식 문자열의 상호 변환을 주로 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
먼저 js에서 JSON 형식의 문자열을 살펴보겠습니다.
var JSONStr1 = "{\"name\" : \"张三\"}";
다음에 쓰는 내용은 JSON의 문자열이 아니라는 점에 유의하세요. js 형식입니다.
var JSONStr2 = "{'name' : '张三'}";
JSON 구문에서 문자열 정의를 살펴보겠습니다. 는 큰따옴표로 묶인 임의 개수의 유니코드 문자 모음입니다. 백슬래시 이스케이프를 사용합니다. 문자는 단일 문자열입니다.
js에서 JSON 형식의 문자열을 JS 객체로 변환하는 방법을 살펴보겠습니다. (
var jsObj3 = eval("(" + JSONStr1 + ")"); var jsObj4 = JSON.parse(JSONStr1);
두 번째 방법을 권장하는 구체적인 이유는 다음을 참조하세요: http://www.php.cn/
추가로 주의할 점 이 두 가지 방법을 사용하여 변환된 js 객체는 "JSON 데이터 형식을 준수하는 js 객체"여야 합니다. 이는 해당 속성이 따옴표로 묶여 있다는 의미입니다. JSON 형식의 문자인 경우 문자열은 다음과 같이 표시됩니다.
var JSONStr1 = "{\"f[name]\" : \"张三\"}";
그런 다음 변환된 JS 객체의 속성을 따옴표로 추가해야 합니다. js 객체의 속성은 따옴표 없이 문자만 사용할 수 있습니다. 숫자, 밑줄, $ 기호는 다른 기호 속성을 사용할 때 따옴표가 필요함을 나타내므로 JS 객체 리터럴 표기법에서 속성에 따옴표를 추가하는 것은 잘못이 아닙니다. 또한 JSON 형식의 문자열이 위와 같은 경우 변환된 js 객체는 jsObj4.f[name]을 사용하여 f[name] 값을 얻을 수 없습니다. 독자들은 이 점에 주의해야 합니다. 이의가 있는 경우
아래에서 js 개체 및 JSON 형식 문자열의 변환을 살펴보겠습니다. 설명을 위해 여러 그룹의 js 개체를 준비했습니다.
<input type="button" value="测试按钮1" onclick="testJson();"/> <script type="text/javascript"> //(1) 这是一个js对象 var jsObj1 = { name : "张三" } //(2)这是一个内部带有方法js对象。 var jsObj2 = { name : "张三", func : function(){ alert("hello"); } } //(3)这是一个符合JSON数据格式的js对象 var jsonObj = { "name" : "张三", "age" : 10, "remark" : {"high" :170,"address" : "beijingshi"} } // js数组对象 var jsArray = [ {name : "张三"}, {"age" : 10} ] function testJson(){ var JSONstr1 = JSON.stringify(jsObj1); var JSONstr2 = JSON.stringify(jsObj2); var JSONstr3 = JSON.stringify(jsonObj); var JSONstr4 = JSON.stringify(jsArray); alert(JSONstr1); alert(JSONstr2); alert(JSONstr3); alert(JSONstr4); }
팝업 상자의 내용을 살펴보세요.
(1) 3) , (4)의 실행 결과는 JSON 파서의 stringify() 함수가 js에 유용함을 보여준다. 객체가 JSON 형식을 따르는 경우에는 제한이 없으며 js 객체를 다음으로 변환할 수 있다.
(2)의 실행 결과를 보면 js 객체에 JSON으로 표현되는 값(예: 함수 및 정의되지 않음)이 없으면 이 제외됩니다. 위의 내용이 모든 사람의 학습에 도움이 되기를 바랍니다.
JavaScript의 js에 대한 자세한 설명은 다음과 같습니다. 객체 변환 및 JSON 형식 문자열에 대해서는 PHP 중국어 웹사이트를 참고하세요