2016-04-27 1 views
-1

Ich verwende objective-c und versuche, JSON in ein Array einer benutzerdefinierten Klasse namens Blog zu deserialisieren. Der folgende Code sollte also drei Objekte generieren und sie einem Array von Objekten hinzufügen. Ich habe mir this tutorial angesehen, aber immer noch Probleme.Deserialisieren von JSON mit Objective-C in ein benutzerdefiniertes Objekt

Die JSON Struktur sieht wie folgt aus:

{ 
    "-KGN0p1I4YFI2YNOcbv3" : { 
    "BlogDomain" : "blg1", 
    "BlogName" : "n1" 
    }, 
    "-KGN198bzC54opL47vUl" : { 
    "BlogDomain" : "blg2", 
    "BlogName" : "n2" 
    }, 
    "-KGN66aqkhIxBAKTcFCx" : { 
    "BlogDomain" : "blg3", 
    "BlogName" : "n3" 
    } 
} 

jede mögliche Hilfe würde geschätzt.

Antwort

1

Bitte versuchen Sie den Code unten aus:

NSString* path = [[NSBundle mainBundle] pathForResource:@"JSON" ofType:@"json"]; 
    NSString* jsonString = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 

    NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 

    NSError *error = nil; 
    NSDictionary *object = [NSJSONSerialization 
          JSONObjectWithData:jsonData 
          options:0 
          error:&error]; 

    if(! error) { 
     NSMutableArray *array = [[NSMutableArray alloc] init]; 

     for (NSString *dictionaryKey in object) { 
      Blog *oBlog = [[Blog alloc] init]; 
      oBlog.blogDomain = [[object valueForKey:dictionaryKey] objectForKey:@"BlogDomain"]; 
      oBlog.blogName = [[object valueForKey:dictionaryKey] objectForKey:@"BlogName"]; 
      [array addObject:oBlog]; 
     } 
    } else { 
     NSLog(@"Error in parsing JSON"); 
    } 

//Blog.h

#import <Foundation/Foundation.h> 

@interface Blog : NSObject 
@property (nonatomic, strong) NSString *blogDomain; 
@property (nonatomic, strong) NSString *blogName; 
@end 

//Blog.m

#import "Blog.h" 

@implementation Blog 

@end 

//JSON.json

{ 
"-KGN0p1I4YFI2YNOcbv3" : { 
"BlogDomain" : "blg1", 
"BlogName" : "n1" 
}, 
"-KGN198bzC54opL47vUl" : { 
"BlogDomain" : "blg2", 
"BlogName" : "n2" 
}, 
"-KGN66aqkhIxBAKTcFCx" : { 
"BlogDomain" : "blg3", 
"BlogName" : "n3" 
} 
} 

enter image description here

Verwandte Themen