首页 文章

在目标c中创建JSON,无效的JSON

提问于
浏览
-1

我正在创建一个 JSON ,以便在线检查其显示错误:

错误:第1行解析错误:[{\“SAHExpertCode \” - 期待'STRING','}',得到'未定义'我的JSON是[{\“SAHExpertCode \”:\“\”,\“ ShiftType \“:\”AM \“,\”LocFunId \“:\”CLT0004218 \“,\”SAHQualCode \“:\”CA \“}]请告诉我有什么问题以及如何纠正它 . 我首先要做的JSON filterString = [{“SAHExpertCode”:“”,“ShiftType”:“AM”,“LocFunId”:“CLT0004218”,“SAHQualCode”:“CA”}]检查发现它是正确的然后创建字典NSDictionary * dictData = @ {@“MbrId”:[USER_DEFAULTS valueForKey:@“MemberId”],@“StrFilter”:[NSString stringWithFormat:@“%@”,filterString],@“shiftCrtlNos”:shftCntrlNmbrs}; NSMutableArray * finalArray = [[NSMutableArray alloc] init]; [finalArray addObject:dictData]; NSString * finalString = [self ConvertArrayToJsonData:finalArray]; finalString = [finalString stringByReplacingOccurrencesOfString:@“\ n”withString:@“”]; finalString = [finalString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];创建最终字符串后,它生成符号\ for JSON Conversion我的代码是 - (NSString *)ConvertArrayToJsonData:(NSMutableArray *)array {NSError error; NSData jsonData = [NSJSONSerialization dataWithJSONObject:数组选项:NSJSONWritingPrettyPrinted错误:&error]; NSString * JSONString; if(!jsonData){NSLog(@“error:%@”,error); } else {JSONString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding]; // NSLog(@“jsonstring:%@”,JSONString); } return JSONString; } //我需要JSON,如[{“StrFilter”:“[{\”SAHExpertCode \“:\”\“,\”ShiftType \“:\”PM \“,\”LocFunId \“:\”CLT0004218 \“ ,“SAHQualCode \”:\“CA \”}]“,”MbrId“:”MBR0000035“,”shiftCrtlNos“:”0080013526,0080014697“}]也告诉我如何从字符串中删除\

3 回答

  • 0

    我通过执行finalString = [finalString stringByReplacingOccurrencesOfString:@“\”withString:@“”]替换了不需要的\符号;在JSON字符串中 .

  • 0

    我建议你去www.json.org查看JSON数据的正确格式 . 获得格式正确的JSON的最简单方法是创建一个要转换为JSON的数组或字典,并使用NSJSONSerialization来完成这项工作 .

  • 0

    只需使用iOS的默认NSJSONSerialization方法

    在下面的示例中,我有一个“postMenuArray”,我正在转换为JSON .

    NSData * postMenuSerial = [NSJSONSerialization dataWithJSONObject:postMenuArray options:0 error:nil];
    
    NSString *Menujson = [[NSString alloc] initWithBytes:[postMenuSerial bytes] length:[postMenuSerial length] encoding:NSUTF8StringEncoding];
    

    在这里我得到了JSON响应

    Menujson = [Menujson stringByReplacingOccurrencesOfString:@" "withString:@""];
    

    最后,我删除所有间距 .

    仍然面临问题试试这个

    Menujson = [Menujson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    

相关问题