2010-06-29 27 views
8

Tôi nhận được phản hồi JSON từ một dịch vụ web nhưng không được bao bọc bởi các thẻ [] mà trình phân tích cú pháp JSON yêu cầu, vì vậy tôi cần phải Nối và thêm các ký tự đó vào NSString của tôi trước khi tôi chuyển nó tới trình phân tích cú pháp JSON .prepend NSString?

Dưới đây là những gì tôi bậy bạ cho đến nay:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
responseString = [responseString stringByAppendingFormat:@"]"]; 

Các phụ thêm hoạt động hoàn hảo bây giờ tôi chỉ cần thêm vào trước các [vào đó, dường như không thể tìm thấy phương pháp này.

Trả lời

10

Hãy thử điều này:

responseString = [NSString stringWithFormat:@"[%@]", responseString]

Có nhiều cách khác của acheiving điều tương tự, tôi chắc chắn rằng những người khác sẽ có thể cung cấp các phương pháp hiệu quả hơn, nhưng nếu responseString không phải là rất lớn thì ở trên là đủ.

7

Sử dụng một NSMutableString bạn có thể làm điều đó như thế này:

NSMutableString *str = [[NSMutableString alloc] initWithString:@"Overflow"]; 
[str insertString:@"Stack" atIndex:0]; 

Sau đó NSMutableString str sẽ tổ chức:

"StackOverflow" 
3

Chỉ cần cho đầy đủ:

responseString = [@"[" stringByAppendingString:responseString]; 

Nó s đôi khi bất ngờ folks mà bạn có thể nhắn tin một chuỗi chữ, cho đến khi họ suy nghĩ về nó. ;)

+0

Âm thanh thú vị. Bạn có thể xây dựng điều này một chút, xin vui lòng (Hoặc cung cấp một nguồn để hiểu sâu hơn)? – plocks

+0

Bạn có thể gửi thông báo '-stringByAppendingString:' cho bất kỳ 'NSString' nào. Chuỗi chữ '@" ["' là 'NSString'. Vì vậy, bạn có thể gọi '-stringByAppendingString:' trên '@" ["'. Câu hỏi ban đầu là, "Tôi biết cách nối thêm một chuỗi, nhưng làm cách nào để thêm vào một chuỗi?" Thông tin chi tiết là việc thêm "foo" vào cuối "thanh" cũng giống như "thanh" trước "" vào đầu "foo". Việc chuẩn bị và phụ thêm là hoạt động tương tự nếu bạn chỉ điều chỉnh sự tập trung tinh thần của mình. Việc đặt một khung bên trái vào một chuỗi giống như việc thêm chuỗi vào một khung bên trái. –

+0

Bây giờ tôi nhận được nó. Cảm ơn nhiều. – plocks