您似乎有一个字典,其中包含一对字符串键/值对和一组您试图转换为 JSON 的其他字典。
如果我对此有误并完全错过了您要完成的工作,我深表歉意。根据您想要的最终结果,这可能是一种更简单的方法。
你当前的初始字符串可以这样存储:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"sometext", @"field1",
text2, @"field2",
myDictArray, @"field3",
@"anothertxt", @"field4"
, nil];
然后使用json转换转换成你想要的格式。
我有一个方法可以用来做这件事。
+(NSData*)jsonDatafromDictionary:(NSMutableDictionary*) dictionary
{
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
options:0 // Pass 0 if you don't care about the readability of the generated string
error:&error];
if (error) {
NSString *errorDesc = [NSString stringWithFormat:@"Error creating json data from dictionary: %@", error.localizedDescription];
NSLog(@"ERROR: %@", errorDesc);
jsonData = nil;
return nil;
}
else
return jsonData;
}
要以 NSString 形式查看数据,您可以使用以下命令:
NSString *jsonString = [[NSString alloc]initWithData:webData encoding:NSUTF8StringEncoding];
要将 json 转换回字典格式,我使用以下方法:
+(NSMutableDictionary*)dictionaryWithContentsOfJSONString:(NSString*)jsonString
{
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSMutableDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error];
if (error)
NSLog(@"FAILED TO CREATE DICTIONARY FROM JSON STRING: %@", error.localizedDescription);
jsonData = nil;
error = nil;
return jsonDict;
}
----- 编辑 -----
根据您在下面的评论,这可能会让您入门。我唯一没有添加的是在需要的地方添加引号的代码……我需要考虑几分钟,这应该会替换所有其他字符,就像你想要的那样。
注意:我尚未对此进行测试,但应该可以帮助您入门。
-(NSString*)convertString:(NSString*)ps
{
NSString *cs = @"";
cs = [ps stringByReplacingOccurrencesOfString:@";" withString:@","];
cs = [cs stringByReplacingOccurrencesOfString:@"(" withString:@"["];
cs = [cs stringByReplacingOccurrencesOfString:@")" withString:@"]"];
cs = [cs stringByReplacingOccurrencesOfString:@"=" withString:@":"];
return cs;
}