2010-04-01 3 views
7

AJAX가있는 JSON에 나가는 매개 변수와 반환하는 매개 변수가 가질 수있는 데이터 양에 제한이 있는지 알고 싶습니다.JSON 제한?

10,000 줄이있는 파일을 문자열로 보내고 서버에서 보내고 싶습니다. 이 작업을 어떻게해야합니까? 단일 매개 변수로이를 처리 할 수 ​​있습니까?

편집 : 내 클라이언트는 JavaScript와 PHP입니다.

감사합니다.

답변

1

당신은 비트에 문자열을 끊고 문자열이 완료 될 때까지 여러 아약스 요청을해야한다. 일시적으로 문자열 비트를 파일에 추가 한 다음 요청이 완료되면 데이터베이스에 파일 내용을 저장하십시오.

+0

이전처럼 이런 식으로 작업 한 것처럼 들리 겠지만 각 요청의 크기를 추천 해 주시겠습니까? 내 파일은 10,000 줄이고 각 줄은 ~ 150자를 포함합니다. (나는 자바 스크립트와 PHP를 사용하고있다) – thedp

+0

나는 항상 요청 당 1MB 미만으로 유지한다. – resopollution

+0

1MB? 매개 변수가 1MB 인 요청을 보내는 경우에도? – thedp

3

HTTP POST 요청에는 (적당한) 크기 제한이 없습니다.

그러나 100MB가 넘는 데이터를 게시하는 경우 안정적으로 작동하지 않을 수 있습니다.

4

Similar question

JSON은 XML과 같은 다른 데이터 형식과 유사하다 - 당신은 더 많은 데이터를 전송해야 할 경우, 당신은 단지 더 많은 데이터를 보낼 수 있습니다. 전체 JSON 요청 자체에는 크기 제한이 없습니다. 모든 제한은 JSON 요청을 구문 분석하는 서버에 의해 설정됩니다. 예를 들어 ASP.NET에는 serializer의 MaxJsonLength 속성이 있습니다.

5

JSON에는 전송할 수있는 데이터의 양 또는 재귀 수준의 제한에 대한 제한이 기본적으로 없습니다. 이는 응용 프로그램 서버에 따라 다릅니다.

C#에서 JSONSerialization을 사용하는 경우 데이터 양에 대한 제한이 상당히 낮게 설정됩니다. Web.config에 다음 코드 단편을 추가하여이를 덮어 쓸 수 있습니다. 당신이 (작은 요청으로 그것을 중단 또는 페이징을 사용) 피할 수 있다면 당신은 아마 AJAX를 통해 약 10 000 라인을 전송하지 않으

 

<system.web.extensions> 
     <scripting> 
      <webServices> 
       <jsonSerialization maxJsonLength="2147483644"></jsonSerialization> 
      </webServices> 
     </scripting> 
    </system.web.extensions> 
 

.