2012-03-25 4 views
2

내가 장치를 제어하는 ​​가정에서 JSON 응답을 요청할 수 있습니다. 그러나, 나는 그것이 나에게 다음과 같은 오류를 제공NSJSONSerialization 나에게 오류 "중복 키"

NSDictionary* dict = [NSJSONSerialization 
          JSONObjectWithData:responseData       
          options:kNilOptions 
          error:&error]; 
NSLog("Error: %@", error); 

을 시도 :

Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Duplicate key for object around character 0.) UserInfo=0x6a8b8e0 {NSDebugDescription=Duplicate key for object around character 0.}

내가 웹을 검색하지만, 지금까지 도움이 아무것도 찾을 수 없습니다.


편집 : 꽤 긴, 그래서 대신에 여기를 게시, 그것을 here을 찾아주십시오 JSON 응답.

+1

JSON 문자열을 사용하는 것이 더 쉬울 것입니다. – MByD

답변

0

http://jsonformat.com/에 JSON을 붙여 넣으면 괜찮습니까? Apple 버그를 찾았습니까? 시도하고 검증하는 또 다른 방법은 제 3 자 iOS 라이브러리를 사용하여 동일한 오류가 발생하는지 확인하는 것입니다. 말해, TouchJSON?

+0

고마워요! TouchJSON이 나를 위해 일하면서, 나는이 사건을 Apple에보고했다. – Norbert

0

동일한 오류가 발생하며 앱이 실행될 때만 임의로 표시됩니다. NSJSONSerialization이 실패하면 JSON 뷰어를 사용하여 json 객체를 확인합니다. JSON은 항상 OK입니다. 그것이 여러 번 호출되면 NSJSONSerialization의 버그?

+0

나는 TouchJSON으로 전환했고 지금까지 훌륭하게 해냈습니다. 시도 해봐! :) – Norbert

0

동일한 오류가 발생했습니다. 내 JSON 데이터가 http://jsonformatter.curiousconcept.com/에 JSON 검사기를 전달했습니다. 그러나 JSON에 사전에 두 개의 중복 된 키가 있음을 발견했습니다. 이러한 키를 제거한 후 NSJSONSerialization이 원활하게 작동합니다.

+0

JSON은 중복 키를 처리하는 방법을 정의하지 않습니다. JSON을 NSDictionary에 추가하는 것은 의미있는 방식으로 JSON을 처리 할 수 ​​없습니다. – gnasher729