2010-03-02 8 views
0

내 프로젝트에 JSON 파서를 추가하고 JSON 문자열을 구문 분석하려고합니다. 대부분의 문자열에서 제대로 작동하지만 때로는 그렇지 않습니다. 내 첫 번째 생각은, JSON 문자열이 잘 형성되어 있지 않다는 것입니다.하지만 여러 JSON 검사기로 검사했는데 모두 정확하다고 말합니다. 추가 줄 바꿈 문자열을 검사했지만 문자열에 줄 바꿈이 없습니다. JSON 파서 오류

내 코드입니다 :

// My JSON string 
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

NSError *error = [[NSError alloc] init]; 

// result is null because of error 
NSDictionary *result = [parser objectWithString:json_string error:&error]; 

내가 디버거에서 살펴 때, 나는 내 오류 변수에 다음을 얻을 :

오류 도메인 = org.brautaset.JSON.ErrorDomain을 코드 = 3 UserInfo = 0x5168270 "키에 예상되는 객체 값 : items"

이는 문자열에있는 항목이 올바르지 않다고 말하지만, 여러 개의 유효성 검사기로 JSON 문자열을 확인했는데 모두 괜찮다고 말합니다.

누구에게 잘못된 생각이 있습니까?

나를 도와 주셔서 감사합니다.

+0

어떤 JSON 파서를 사용하고 있습니까? 문제를 일으키는 JSON 문자열을 게시 할 수 있습니까? – pheelicks

+0

Google의 최신 JSON 프레임 워크를 사용하고 있습니다. http://code.google.com/p/json-framework/ 내 JSON 문자열은 뉴스 피드 결과물이므로 실제로 길다. 나는 그것을 다음 게시글에 붙여 넣으려고 노력할 것이다. – Dominik

+0

문자열이 불완전합니다. 길이가 너무 길기 때문일 수 있습니다. 아마도 링크가 더 좋을까요? – pheelicks

답변

0

그것은하지만, JSON 문자열 "항목을"보고에서 말씀 어렵다 이상한 문자가 예컨대 사용되는 첫 번째 부분입니다 :

"content":"\u003cp\u003e\u003ca href\u003d 

는 아마도이 파서를 혼란은? 아니면 인코딩이 잘못되었을 수 있습니까?

디버거에서 json_string 값을 확인할 때 무엇이 ​​표시됩니까? 예 :

NSLog(json_string); 
0

네, 아마도 이것이 문제입니다. \ u003c와 같은 문자는 유니 코드 이스케이프이며 inal 스트림에서 가져 오므로 인코딩이 잘되어야합니다. json 호환 형식으로 변환 할 수있는 방법이 있습니까?