title: Unexpected end of input with SBJson in Objective-C
body: <p>I have the following code that is trying to parse a JSON that I am returning from a website:</p>
  
  <pre><code>- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  
       [connection release];
  
       NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
  
       NSLog(@"my ns string = %@", responseString);
  
       [responseData release];
  
       NSError *error; 
       NSDictionary *dictionary = [parser objectWithString:responseString   
                                                 error:&amp;error]; 
       while (error) { 
           NSLog(@"%@", error); 
           error = [[error userInfo] objectForKey:NSUnderlyingErrorKey]; 
       } 
  
       NSLog(@"%@", dictionary);
  
  
   }
  </code></pre>
  
  <p>I get these errors:</p>
  
  <pre><code>2011-08-01 20:16:47.273 myJSONParser[1040:b603] Connection didReceiveResponse: 
  &lt;NSHTTPURLResponse: 0x4e810f0&gt; - application/json
  2011-08-01 20:16:47.279 myJSONParser[1040:b603] Connection didReceiveData of length: 117
  2011-08-01 20:16:47.359 myJSONParser[1040:b603] my ns string = 
  2011-08-01 20:16:47.361 myJSONParser[1040:b603] Error Domain=org.brautaset.SBJsonParser.ErrorDomain Code=0 "Unexpected end of input" UserInfo=0x4eada30 {NSLocalizedDescription=Unexpected end of input}
  2011-08-01 20:16:47.363 myJSONParser[1040:b603] (null)
  </code></pre>
  
  <p>I do have control over the JSON that I am trying to acquire and inside the PHP that generates the JSON I set the header like this:</p>
  
  <pre><code>header("Content-Type:application/json");
  ...
  echo json_encode($arr);
  </code></pre>
  
  <p>"Unexpected end of input" leads me to believe that the JSON is somehow malformed, but JSONLint tells me its perfectly valid. What am I doing wrong? Thank you for taking the time to read through this, any advice would really be appreciated!</p>
  
  <p>UPDATE:</p>
  
  <p>I set the responseData like this:</p>
  
  <pre><code>NSMutableData *responseData;
  
  - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
           NSLog(@"Connection didReceiveData of length: %u", data.length);
  
           [responseData appendData:data];
  
       }
  </code></pre>
  
  <p>And the parser like this (in .h):</p>
  
  <pre><code>SBJsonParser *parser;
  </code></pre>
  
  <p>And .m:</p>
  
  <pre><code>parser = [[SBJsonParser alloc] init];
  </code></pre>
  
  <p>Charles Findings:</p>
  
  <pre><code>HTTP/1.1 200 OK
  Date: Tue, 02 Aug 2011 03:30:14 GMT
  Server: Apache
  X-Powered-By: PHP/5.2.15
  Transfer-Encoding: chunked
  Content-Type: application/json
  
  [{"key1":"Name","key2":"First","key3":"2011-08-13"},{"key1":"Second","key2":"test2","key3":"2011-08-13"}]
  </code></pre>
  
  <p>Description of the NSData received:</p>
  
  <blockquote>
    <p>Printing description of data: {length =
    117, capacity = 256, bytes = 0x5b7b22686f6d65223a22426c61636b62 ...
    30382d3133227d5d}</p>
  </blockquote>