programing

JSON.stringify 반환 []

megabox 2023. 2. 23. 22:42
반응형

JSON.stringify 반환 []

?가왜?JSON.stringify()★★★★

[]

jQuery에서도 같은 현상이 발생합니다.$.JSON.encode()

인은은무?무 엇??오브젝트의 단순한 배열을 전달하고 있습니다.각 오브젝트에는 문자열 속성이 있습니다.으로 보이지만, 인지 두 모두 반환되고 .[].

어레이 선언으로

var count_review= new Array() 

이 용도 대신에

var count_review={}; 

효과가 있다!

에서 "Dell"을 사용하는 string값('' )int는 이stringify를 합니다.

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

를 , "int"는 "int"입니다.stringify돌려줄 거예요

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

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

JSON은 자바스크립트 객체의 1:1 매핑이 아닌 범용 포맷(여러 프로그래밍 언어를 지원한다는 의미)입니다.

따라서 이 문제가 발생하는 근본적인 이유는 JSON(RFC 7159에서 규정)에는 JavaScript의 어소시에이트 어레이가 없기 때문입니다.Arraysense -- 즉, 키가 문자열인 배열입니다.RFC 사양을 읽는 것은 시간이 걸릴 수 있기 때문에, JSON.org 의 Web 사이트 상부에 간단하게 게재할 수 있습니다(아래에 강조점을 몇 가지 나타냅니다).

JSON은 다음 두 가지 구조를 기반으로 구축됩니다.

  • 이름/값 쌍의 집합입니다.다양한 언어에서 이는 객체, 레코드, 구조, 사전, 해시 테이블, 키 목록 또는 연관 배열로 실현됩니다.
  • 값의 순서부 리스트.대부분의 언어에서 이것은 배열, 벡터, 목록 또는 시퀀스로 실현됩니다.

이것들은 범용 데이터 구조입니다.사실상 모든 현대 프로그래밍 언어는 어떤 형태로든 이들을 지원합니다.프로그래밍 언어와 호환 가능한 데이터 형식도 이러한 구조를 기반으로 하는 것이 타당합니다.

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

개체는 이름/값 쌍의 순서가 정렬되지 않은 집합입니다.오브젝트는 로 시작된다.{ 괄호.}(일부러)각 이름 뒤에는 다음이 있습니다.:을 (8)으로 합니다.,( ( )

JSON 객체 정의 그래프

배열은 값의 순서 집합입니다.은 with이음음음음음음음음음음음음음음으로 시작한다.[ 괄호.](일부러)은 음음음음음음음음음음 values values values 로 구분됩니다.,( ( )

JSON 배열 정의 그래프

JSON.stringify함수는 배열이 배열이 되는 것을 의도하고 모든 키 엔트리가 주석으로 되어 있다고 가정하고 함수 오브젝트인 요소와 마찬가지로 JSON 표현에서 그냥 튕겨져 나온다고 가정합니다.유감스럽게도 이 동작은 현재(2017-09-04) MDN인 비공식 JavaScript 참조에서 명확하게 정의되어 쉽게 이해할 수 있는 방법으로 문서화되어 있지 않습니다.따라서 ol' Mozilla를 돕고 싶다면 다음과 같은 결과를 얻을 수 있습니다.

json 어레이의 키 값이 string-string이었기 때문에 같은 문제가 발생하였습니다.구조를 변경할 수 없습니다.그래서 저는 제 json 어레이를 json 오브젝트로 변환함으로써 문제를 해결했습니다.Json 개체가 문자열화되었습니다.

어레이를 개체로 변경하려면:

var *your_object* = Object.assign({}, *your_array*);

언급URL : https://stackoverflow.com/questions/7259728/json-stringify-returning

반응형