title: how to parse a JSON string in iphone Objective - C?
body: <p>Hi i am trying to parse a JSON string in iphone and so far i have been able to get JSON VALUE correctly</p>
  
  <p>but after that i am geting an error:</p>
  
  <pre><code>-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x62242e0
  2011-08-16 16:11:58.792 BleepBleep[4083:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x62242e0'
  *** Call stack at first throw:
  (
      0   CoreFoundation                      0x010a9be9 __exceptionPreprocess + 185
      1   libobjc.A.dylib                     0x011fe5c2 objc_exception_throw + 47
      2   CoreFoundation                      0x010ab6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
      3   CoreFoundation                      0x0101b366 ___forwarding___ + 966
      4   CoreFoundation                      0x0101af22 _CF_forwarding_prep_0 + 50
      5   BleepBleep                          0x0000733f -[Screen1 network:didFinishLoadingWithRequest:data:] + 79
      6   BleepBleep                          0x0000b7e4 -[WNetwork handleResponse] + 323
      7   BleepBleep                          0x0000b69b -[WNetwork connectionDidFinishLoading:] + 36
      8   Foundation                          0x00077172 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 108
      9   Foundation                          0x000770cb _NSURLConnectionDidFinishLoading + 133
      10  CFNetwork                           0x01674606 _ZN19URLConnectionClient23_clientDidFinishLoadingEPNS_26ClientConnectionEventQueueE + 220
      11  CFNetwork                           0x0173f821 _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 293
      12  CFNetwork                           0x0166ae3c _ZN19URLConnectionClient13processEventsEv + 100
      13  CFNetwork                           0x0166acb7 _ZN17MultiplexerSource7performEv + 251
      14  CoreFoundation                      0x0108b01f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
      15  CoreFoundation                      0x00fe928b __CFRunLoopDoSources0 + 571
      16  CoreFoundation                      0x00fe8786 __CFRunLoopRun + 470
      17  CoreFoundation                      0x00fe8240 CFRunLoopRunSpecific + 208
      18  CoreFoundation                      0x00fe8161 CFRunLoopRunInMode + 97
      19  GraphicsServices                    0x019de268 GSEventRunModal + 217
      20  GraphicsServices                    0x019de32d GSEventRun + 115
      21  UIKit                               0x002e442e UIApplicationMain + 1160
      22  BleepBleep                          0x00002018 main + 102
      23  BleepBleep                          0x00001fa9 start + 53
  )
  terminate called after throwing an instance of 'NSException'
  </code></pre>
  
  <p>Heres the code i am using in didFinishLoadingWithRequest</p>
  
  <pre><code>-(void)network:(WNetwork*)network didFinishLoadingWithRequest:(NSInteger)pReq data:(NSMutableDictionary*)pData
  {
      [self removeLoader];
  
      switch (pReq) {
          case JBJsonParser:
          {
              NSArray *parsedString = [pData objectForKey:@"placesname"];
              DLog(@"LIST %@",parsedString);
          }
      break;      
          default:
              break;
  }
  
  }
  </code></pre>
  
  <p>in the network class i am using dis code:</p>
  
  <pre><code>{
      SBJSON *parser = [SBJSON new];      
      NSString *dataString = [[NSString alloc] initWithData:mRespData encoding:NSUTF8StringEncoding];
  
  
      NSMutableDictionary *newDic = [dataString JSONValue];
  
      if ([(id)mDelegate respondsToSelector:@selector(network:didFinishLoadingWithRequest:data:)]) {
          [self.mDelegate network:self didFinishLoadingWithRequest:mReqType data:newDic];
      }
      [newDic autorelease];
  
      [dataString release];
      [parser release];
  }
  </code></pre>