2012-01-02 3 views
1

SBJSON을 사용하여 내 NSDictionary를 내 IOS 응용 프로그램의 JSON String으로 변환합니다.NSData 또는 NSAttributedString with SBJSON

내 사전에 NSAttributedString 또는 NSData가 포함되어 있으면 SBJSON에서 문자열 표시를 생성하지 못합니다.

경우;는 NSAttributedString은의 오류는 다음과 같습니다

-JSONRepresentation에 실패했습니다. ( "오류 도메인 = org.brautaset.JSON.ErrorDomain 코드 = 1 \"하지 NSConcreteMutableAttributedString \

지원 JSON 직렬화 경우;을 NSData의 오류는 다음과 같습니다 : 오류 추적은

- JSONRepresentation 실패 오류 추적은 다음과 같습니다. ( "오류 도메인 = org.brautaset.JSON.ErrorDomain 코드 = 1 \"JSON 직렬화가 NSConcreteMutableData \ 지원되지

을 " 는 사용자 정보 = 0x7ed2560 {NSLocalizedDescription = JSON 직렬화가 NSConcreteMutableData 지원되지 }"

두 가지 문제 중 적어도 하나를 해결하는 것이 좋습니다. 도와주세요.

감사 Roshit

+0

NSData 또는 NSAttributedString 객체에는 무엇이 들어 있습니까? 문자열로 serialize 할 수 있습니까? –

+0

NSAttributedString은 형식이 지정된 문자열입니다. 에서와 같이 텍스트는 다른 색인에서 다른 속성으로 형식화됩니다. NSData는 NSAttributedString의 데이터 표현입니다. 데이터 표현은 [link] (https://devforums.apple.com/message/340283#340283) – Roshit

+0

에서와 비슷한 코드를 사용하여 얻었습니다. 답변 중 하나를 수락하십시오. 그들은 합리적으로 보입니다. 또는 추가 정보를 제공하여 우리가 더 이상 당신을 도울 수있게하십시오. –

답변

2

JSON은 당신이 원하는 것을 할 수있는 데이터 유형을 가지고 있지 않습니다,하지만 당신은 Base64로 인코딩 된 문자열에있는 NSData를 변환 할 수 있습니다. 이것은 -proxyForJson 메소드를 구현하는 NSData의 카테고리를 사용하여 자동으로 수행 할 수 있습니다. 문제는 다른 쪽에서 NSData로 다시 변환해야 할 때입니다. 키가 알려진 경우 Base64로 해독 할 수 있습니다. 그러나 데이터 부분이 어떤 키에 해당 될 수 있다면 조금 더 어려워집니다. 어떻게 든 Base64로 해독되어야하는 문자열을 결정할 수 있도록 데이터를 구조해야합니다.

+0

U가 하루를 저장했습니다. Base64가 핵심이었습니다 ... 감사합니다 ... :) – Roshit

1

NSData 객체를 전달할 수 없습니다. 문제의 해결 방법은 다음 행을 사용하고 (nsdata 객체에 대한 응답을 변경) 해당 문자열을 값으로 사용하는 것입니다.

NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

당신은뿐만 아니라 값으로 NSAttributedString은을 전달할 수 없습니다. NSAttributedString을 NSString으로 변경해야합니다. 자세한 내용은 OHAttributedLabel lib를 확인하십시오.