Things take time

[JavaScript] JSON 객체 변환, 파싱 본문

Web/JavaScript

[JavaScript] JSON 객체 변환, 파싱

겸손할 겸 2018. 9. 18. 11:14

[JSON.parse, JSON.stringify]


객체 : {}

배열 : []


1. JSON.stringify : 객체를 JSON형태의 String 객체로 변환해준다.


2. JSON.parse : String 객체를 JSON 객체로 변환해준다. 

var testArray = {"key" : "value"}; var testString= "abcde"; var jsonString1 = JSON.stringify(testArray); var jsonString2 = JSON.stringify(testString); console.log(jsonString1); console.log(jsonString2); var jsonObject1 = JSON.parse(jsonString1); var jsonObject2 = JSON.parse(jsonString2); console.log(jsonObject1.key); console.log(jsonObject2);



testString이나 jsonString2, jsonObject2는 사실상 JSON으로써 쓸모가 없다. 

기본적으로 key, value로 이루어진 데이터를 JSON 타입이라 하지만, 변환 자체가 안되는 건 아니라는 뜻.



[JSON key 동적 할당]

json의 키 값이 기본적으로 부여되고, 그에 들어가는 밸류 값이 동적이라면 편하게 사용하지만, 키 값이 동적이라면 다른 방식으로 접근해야한다.


무슨 말이냐면


{ "key" : "value" } 처럼 : 를 통해 사용하는 것이 아니라

			var addFields = {};
			$.each( $addFieldList ,function ( key ,val ) {
				addFields[ key ] = $( "input[name='" + key + "']" ).val();
			} );

객체를 선언하여 안에 들어가는 키 값을 배열 변수로 할당해주는 것이다.



$addFieldList의 값은 참고로 


  1. {uuidb1f37e3e513043cd86cac0d3668da4b1: Array(2), uuide76cfbcb1a1846c6bda1b44c68470e69: Array(2), uuid2b5ad618cafb4c41aed07229bd622de1: Array(2)}


위처럼 이루어져있다. 즉 JSON객체이며, 이 JSON객체는 key값(각 페이지마다 다른 동적 값)과 value값으로 배열을 갖고있다.



이해하기가 까다롭다면,

간단하게 {"" : ""}로 하지말고 빈 객체를 선언하여 해당 객체의 key값을 []를 통해 그 안에 사용한 변수(위에서 key)로 선언해준다는 것