您好我正在尝试将 NSMutable 转换为 JSON 字符串,这是我的代码:
-(NSString *) buildFeedback {
sqlite3_stmt *statement;
sqlite3 *notificationDB;
NSString *result = @"";
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [path objectAtIndex:0];
NSString *dbPathString = [docPath stringByAppendingPathComponent:@"feedbacks.db"];
if (sqlite3_open([dbPathString UTF8String], ¬ificationDB)==SQLITE_OK) {
NSString *querySql = [NSString stringWithFormat:@"SELECT * FROM FEEDBACKS"];
const char* query_sql = [querySql UTF8String];
if (sqlite3_prepare(notificationDB, query_sql, -1, &statement, NULL)==SQLITE_OK) {
while (sqlite3_step(statement)==SQLITE_ROW) {
NSString *feedbackText = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statement, 1)];
NSMutableDictionary *feedback = [NSMutableDictionary dictionary];
[feedback setObject:feedbackText forKey:@"content"];
NSMutableDictionary *feedbacks = [NSMutableDictionary dictionary];
[feedbacks setObject:feedback forKey:@"feedback"];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:feedbacks
options:0
error:&error];
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
if ([result length])
result = [result stringByAppendingString:@","];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
result = [result stringByAppendingString:jsonString];
}
}
}
}
sqlite3_close(notificationDB);
return result;
}
在我的 Rails 服务器中,我得到了这个:
参数:{"feedbacks"=>"{\"feedback\":{\"content\":\"X<
我的问题是我如何在没有转义符(\“)的情况下做一个真正的 json 字符串。