IT Share you

JSON.stringify 반환 []

shareyou 2021. 1. 7. 19:57
반응형

JSON.stringify 반환 []


JSON.stringify()돌아 올까요?

[]

jQuery에서도 마찬가지입니다. $.JSON.encode()

원인은 무엇입니까? 각 개체에 문자열 속성이있는 간단한 개체 배열을 전달하고 있습니다. 나는 각 객체 속성을 반복하고 경고했으며 모두 괜찮아 보이지만 어떤 이유로 두 encode 메소드 모두 [].


배열 선언에서

var count_review= new Array() 

이 사용 대신

var count_review={}; 

효과가있다!


배열이 "문자열"키 값으로 선언하면 null을 반환합니다.

var array = [];
array['name'] = 'johan';
array['age'] = 20;
alert(JSON.stringify(array))// return []

그러나 배열이 "int"로 선언되면 json 문자열을 반환합니다.

var array = [];
array[0] = 'johan';
array[1] = 20;
alert(JSON.stringify(array))// return["johan",20]

위의 답변은 사실이지만 완전히 이해하려면 더 많은 컨텍스트가 필요합니다.

JSON은 JavaScript 객체의 일대일 매핑이 아닌 범용 형식 (여러 개의 모든 프로그래밍 언어를 지원한다는 의미에서)입니다.

따라서 이것이 발생하는 근본 이유는 JSON ( RFC 7159에 의해 지정됨 )에는 JavaScript의 Array의미 에서 연관 배열, 즉 키가 문자열 인 배열이 없기 때문 입니다. RFC 사양을 읽는 데 시간이 많이 걸릴 수 있으므로 JSON.org 웹 사이트에서 가장 쉽게 볼 수 있습니다 ( 아래에서 강조하는 부분은 제 것입니다 ).

JSON은 두 가지 구조로 구축됩니다.

  • 이름 / 값 쌍의 모음입니다. 다양한 언어에서 이것은 object , record , struct , dictionary , hash table , keyed list , associative array로 구현 됩니다.
  • 목록 순서 값을. 대부분의 언어에서 이것은 array , vector , list 또는 sequence로 구현 됩니다.

이들은 보편적 인 데이터 구조입니다. 거의 모든 최신 프로그래밍 언어는 한 가지 형태로 지원합니다. 프로그래밍 언어와 교환 할 수있는 데이터 형식도 이러한 구조를 기반으로합니다.

JSON에서는 다음과 같은 형식을 취합니다.

객체 이다 순서화 이름 / 값 쌍의 집합. 객체는 {(왼쪽 중괄호)로 시작하고 (오른쪽 중괄호)로 끝납니다 }. 각 이름 뒤에는 :(콜론)이오고 이름 / 값 쌍은 ,(쉼표)로 구분됩니다.

JSON 객체 정의 그래프

배열은 정렬 된 값 모음입니다. 배열은 [(왼쪽 대괄호)로 시작하고 (오른쪽 대괄호)로 끝납니다 ]. 값은 ,(쉼표)로 구분됩니다.

JSON 배열 정의 그래프

JSON.stringify그 배열을 가정하면 어레이, 모든 키 입력 항목 의도되도록 방식으로 작동 핸들이 너무 함수 객체 소자 등, 주석, 그들은 단지 그것을 반환 JSON 표현 축출된다. 불행히도이 동작은 오늘 (2017-09-04) 현재 MDN 인 비공식 JavaScript 참조에서 잘 정의되고 쉽게 이해할 수있는 방식으로 문서화되어 있지 않으므로 여기에 이전의 Mozilla를 돕고 싶다면 몇 가지 간단한 결실이 있습니다.

참조 URL : https://stackoverflow.com/questions/7259728/json-stringify-returning

반응형