-2

从网络服务我得到数据为 json 但问题是 json 带有所有“带有 \ 即“all”作为 \“all\”

如何使它成为有效的 json 和字典?

{
    GetDataResult = "[{\"www\":{\"0\":{\"ID\":\"10233\",\"Queue\":\"COMPLETED\",\"EstCommName\":\"\U062e\U0631\U0645 \U0644\U0644\U0627\U0644\U0648\U0645\U0646\U064a\U0648\U0645 \U0648\U0627\U0644\U0632\U062c\U0627\U062c\",\"ReturnTime\":\"\",\"Latitude\":\"\",\"Longitude\":\"\"},\"1\":{\"ID\":\"10304\",\"Queue\":\"COMPLETED\",\"EstCommName\":\"\U0627\U062d\U0645\U062f \U0627\U0644\U0643\U0646\U062f\U064a \U0644\U0644\U0627\U0644\U0645\U0648\U0646\U064a\U0648\U0645 \U0648\U0627\U0644\U0632\U062c\U0627\U062c\",\"ReturnTime\":\"\",\"Latitude\":\"\",\"Longitude\":\"\"},\"2\":{\"ID\":\"10667\",\"Queue\":\"FRESH\",\"EstCommName\":\"\U0645\U0646\U062c\U0631\U0629 \U0627\U0644\U062e\U0632\U0646\U0629\",\"ReturnTime\":\"\",\"Latitude\":\"\",\"Longitude\":\"\"},\"3\":{\"ID\":\"10777\",\"Queue\":\"FRESH\",\"EstCommName\":\"\U0645\U0624\U0633\U0633\U0647 \U062c\U0647\U0627\U0645 \U0644\U0627\U0639\U0645\U0627\U0644 \U0627\U0644\U0633\U064a\U0631\U0627\U0645\U064a\U0643\",\"ReturnTime\":\"\",\"Latitude\":\"\",\"Longitude\":\"\"}}},{\"asd\":{}},{\"ssd\":{}}]";

换句话说

TLDR

如何从单词\“hello\”中删除\。?即需要的输出是“你好”。

我试过的

     NSLog(@"%@",[[op objectForKey:@"GetSampleDataResult"] stringByReplacingOccurrencesOfString:@"\"" withString:@""]);
4

4 回答 4

1

我还没有尝试过,但这样的东西可以为你工作。

示例代码:

NSString *yourString = [yourJSON objectForKey:@"GetDataResult"];
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSArray *www = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
NSLog(@"www :: %@",www);
于 2013-10-17T09:32:45.703 回答
0

从我的头顶开始,要替换 \" 您需要将其指定为 \\\"

原因是 \ 本身被用作转义字符,因此您需要转义:

  • \ 和 \\
  • “ 和 \”

但引号是必需的,所以你需要摆脱 \
所以这个:

NSLog(@"%@",[[op objectForKey:@"GetSampleDataResult"]
             stringByReplacingOccurrencesOfString:@"\\"
             withString:@""]);

但如前所述,NSJSONSerialization 是解决此问题的最佳方法

于 2013-10-17T09:36:49.267 回答
0
于 2013-10-17T09:38:58.120 回答
0

我在下面尝试过这样的:--

NSString *word= @"'\'hello'\'";
    NSArray *arr=[word componentsSeparatedByString:@"'\'"];
    for (NSString *str in arr)
    {
        if ([str length] >0)
        {
        NSLog(@"%@",str);
        }
    }
于 2013-10-17T09:39:04.377 回答