[json] 보유 할 수있는 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 파일의 현재 파일 크기 제한은 18,446,744,073,709,551,616 자 또는 바이트를 선호하는 경우 또는 64 비트 인프라를보고있는 경우 2 ^ 64 바이트입니다.

모든 의도와 목적을 위해이 문제에 어려움을 겪을 수 있으므로 무제한이라고 가정 할 수 있습니다 …