Program Tip

JSON 직렬화 된 데이터를 NSDictionary로 변환하는 방법

programtip 2020. 12. 6. 21:58
반응형

JSON 직렬화 된 데이터를 NSDictionary로 변환하는 방법


이 방법을 사용했습니다.

NSDictionary *jsonObject=[NSJSONSerialization 
       JSONObjectWithData:jsonData 
                  options:NSJSONReadingMutableLeaves 
                    error:nil];
NSLog(@"jsonObject is %@",jsonObject);

"jsonObject is null"이 인쇄됩니다.
"error : nil"에 문제가 있습니까?
URL 또는 연결 방법을 사용하지 않습니다.
json 파일이 있고이를 테이블에 표시하고 싶습니다.


다음 코드를 시도하십시오.

NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData
                                                     options:kNilOptions 
                                                       error:&error];

NSArray* latestLoans = [json objectForKey:@"loans"];

NSLog(@"loans: %@", latestLoans);

누군가가 빠른 코드를보기 위해 여기에있는 경우를 대비하여 :

NSData에서 NSDictionary로

let dictionary:NSDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(jsonData)! as NSDictionary

NSData에서 NSString으로

let resstr = NSString(data: res, encoding: NSUTF8StringEncoding)

json 입력을 확인하십시오. 루트 요소가 사전이나 배열이 아닐 수 있습니까? 문서에는이 경우 NSJSONReadingAllowFragments를 옵션으로 지정해야한다고 나와 있습니다.

#import <Foundation/Foundation.h>

int main(int argc, char *argv[]) {
    NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];

    NSData *jsonData = [@"{ \"key1\": \"value1\" }" dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *jsonObject=[NSJSONSerialization 
           JSONObjectWithData:jsonData 
                      options:NSJSONReadingMutableLeaves 
                        error:nil];
    NSLog(@"jsonObject is %@",jsonObject);

    [p release];
}

산출:

2012-09-26 16:06:51.610 Untitled[19164:707] jsonObject is {
    key1 = value1;
}

NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

이것은 상위 게시물의 더 간결한 버전입니다.


let convertJsonIntoDict = JSONSerialization.jsonObject (with : data !, options : []) as? NSDictionary

참고 URL : https://stackoverflow.com/questions/12603047/how-to-convert-json-serialized-data-to-nsdictionary

반응형