2012-08-03 2 views
2

읽었으며이 오류는 잘못된 JSON에서 발생한 것 같습니다. 충분히 쉬운, 여기객관적인 C 오류 3840 - 분명히 JSON이 잘못되었지만 JSlint로 유효성이 확인되었습니다.

내 JSON은 { "년": "2012", "바퀴": "표준", "트랜스": "알 수없는"}

내 문제는,이 올바른 것으로 나타납니다

, JSON lint를 통해 실행하면 vaild가 반환됩니다. 또한 cURL을 사용하여이 페이지를 다운로드하고 json_decode()를 사용하여 읽었습니다 ... 정상적으로 작동합니다. http://drivingthenation.com/app/carlist/getVinDtn.php?v=JA3215H1C* * M & F = V

내가 HTTPScoop를 통해 실행 및 응답 텍스트가 반환되는 유일한 것은

{ "년"이었다 : 여기

는 예제 페이지입니다 : "2012", "wheels": "Standard", "trans": "Unknown"}

객관적인 목적으로 NSURL과 NSData를 사용하여 URL을 얻은 다음 NSJSONSerialization을 사용합니다. NSJSONSerialization 전에 인쇄 할 수 있으며 데이터를 가져 오는 것은 사실이지만이 오류는 JSON으로 포맷하려고 할 때만 발생합니다. 이견있는 사람?

답변

0

기본적으로 NSJSONSerialization 클래스는 입력이 유효한 JSON이 아니라 유효한 JSON 개체이 될 것으로 기대합니다. 객체가 아닌 것을 읽으려면 판독기에 NSJSONReadingAllowFragments 옵션을 지정해야합니다.

+0

좋아요, 나는 그것을 시도했습니다. 내 코드는 지금 : [NSJSONSerialization JSONObjectWithData : jsonData 옵션 : NSJSONReadingAllowFragments 오류 : & 오류] 이제 "문자 0 주위에 유효하지 않은 값"이 나타납니다. –

+0

URL을 가져 오는 방식에 약간의 오류가있는 것 같습니다. 정보를 얻기 위해 URL을 사용하는 대신 특정 파일에서 JSON을 출력하기 위해 cURL을 사용하는 별도의 get.php 파일을 만들었습니다. 그래서 내가 보내는 데이터의 특성 때문에 POST 요청과 GET 요청을 사용해야한다는 것을 의미한다고 생각하십니까? (Vin numbers) –

+0

@AustinWolff : 왜 그것이 차이를 만들지 상상할 수 없습니다. 마지막에 눈에 보이지 않는 정크 문자와 같은 데이터가 손상되지 않았는지 확인 하시겠습니까? –