programing tip

보유 할 수있는 JSON의 양에는 제한이 있습니까?

itbloger 2020. 6. 12. 21:39
반응형

보유 할 수있는 JSON의 양에는 제한이 있습니까?


주석 시스템에 jquery, JSON 및 AJAX를 사용하고 있습니다. 궁금합니다. JSON으로 전송 / 저장할 수있는 크기에 제한이 있습니까? 사용자가 많은 양을 입력하고 JSON을 통해 보내는 것처럼 일종의 최대 제한이 있습니까?

또한 JSON을 통해 모든 종류의 텍스트를 보낼 수 있습니다. 예를 들어 언젠가 사용자가 html을 사용하도록 허용하면 괜찮을까요?


JSON은 XML과 같은 다른 데이터 형식과 유사합니다. 더 많은 데이터를 전송해야하는 경우 더 많은 데이터를 보내면됩니다. JSON 요청에는 고유 한 크기 제한이 없습니다. 서버는 요청을 파싱하여 제한을 설정합니다. 예를 들어 ASP.NET에는 serializer의 "MaxJsonLength"속성이 있습니다.


JSON 데이터 블록의 크기 또는 필드의 크기에는 고정 된 제한이 없습니다.

다양한 브라우저의 JavaScript 구현이 처리 할 수있는 JSON의 양에는 제한이 있습니다 (예 : 약 40MB). 예를 들어이 질문을 참조하십시오 .


JSON 작성기 / 파서의 구현에 따라 다릅니다. Microsoft의 DataContractJsonSerializer는 약 8kb의 하드 제한을 가지고있는 것으로 보이며 (8192라고 생각합니다) 더 큰 문자열에 대해서는 오류가 발생합니다.

편집 : 우리는이 답변에 설명 된대로 웹 구성에서 MaxJsonLength 속성을 설정하여 JSON 문자열에 대한 8K 제한을 해결할 수있었습니다 : https://stackoverflow.com/a/1151993/61569


보내거나받을 JSON 데이터의 크기에는 제한이 없습니다. Json 데이터도 파일로 보낼 수 있습니다. 작업중인 브라우저의 기능에 따라 Json 데이터를 처리 할 수 ​​있습니다.


구현시 크기를 포함하여 JSON 문서에 대한 제한을 자유롭게 설정할 수 있으므로 구문 분석기를 현명하게 선택하십시오. RFC 7159 섹션 9를 참조하십시오 .

"구현은 받아 들일 수있는 텍스트의 크기에 제한을 설정할 수 있습니다. 구현은 최대 중첩 깊이에 제한을 설정할 수 있습니다. 구현은 숫자의 범위와 정밀도에 제한을 설정할 수 있습니다. 구현은 길이와 문자에 대한 제한을 설정할 수 있습니다 문자열의 내용. "


ASP.NET MVC로 작업하는 경우 MaxJsonLength 를 결과 에 추가하여 문제를 해결할 수 있습니다.

var jsonResult = Json(new
{
    draw = param.Draw,
    recordsTotal = count,
    recordsFiltered = count,
    data = result
}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;

JSON 문자열의 최대 길이 기본값은 2097152 자이며 4MB의 유니 코드 문자열 데이터에 해당합니다.

아래 URL을 참조하십시오

https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer.maxjsonlength?view=netframework-4.7.2

참고 URL : https://stackoverflow.com/questions/1262376/is-there-a-limit-on-how-much-json-can-hold

반응형