我将json响应存储在NSDictionary中,并且此字典包含各种array,因此我想用@""空字符串替换所有空值。

{
    Specialities =     (
                {
            ApprovalStatus = Unapproved;
            CurrencyCode = "<null>";
            Packages =             (
                                {
                    AssetId = 157965;
                    BasePrice = 10000;
                    BookingAdvance = 100;
                    Currency = INR;
                    Details = "<null>";
                    DiscountedPrice = 9000;
                    Id = 16579;
                    IsBestOffer = 1;
                    IsPopular = 1;
                    LineItems =                     (
                                                {
                            IconClass = "fa-check";
                            Text = "A DVD with all edited and unedited images";
                        }
                    );
                    PackageVersion = 123955;
                    PriceUnit = 3;
                    Quantity = 4;
                    SpecialityId = 22;
                    Status = Rejected;
                    Tags =                     (
                        53
                    );
                    TermsAndConditions = "<null>";
                    Title = Test;
                }
            );
            Photos =             (
                157965,
                157964
            );
            ServiceDescription = 43534;
            Speciality = 22;
            SpecialityName = "Wedding Photographer";
            UserFRPs =             (
                                {
                    AssetId = 157965;
                    CurrencyCode = INR;
                    DiscountedPrice = 800;
                    FRPId = 13;
                    Id = 4559;
                    Price = 1000;
                    SpecialityId = 22;
                    Status = Active;
                },
                                {
                    AssetId = 565441;
                    CurrencyCode = INR;
                    DiscountedPrice = 9000;
                    FRPId = 18;
                    Id = 5559;
                    Price = 10000;
                    SpecialityId = 22;
                    Status = Active;
                }
            );
            Videos =             (
                                {
                    VideoId = DaWOguXZbNA;
                    VideoLink = "http://www.youtube.com/watch?v=DaWOguXZbNA";
                    VideoType = YouTube;
                },
                                {
                    VideoId = DGVJtAHzzDQ;
                    VideoLink = "http://www.youtube.com/watch?v=DGVJtAHzzDQ";
                    VideoType = YouTube;
                },
                                {
                    VideoId = "_zxKLZR-xuk";
                    VideoLink = "http://www.youtube.com/watch?v=_zxKLZR-xuk";
                    VideoType = YouTube;
                },
                                {
                    VideoId = 5SkBZcvuuQs;
                    VideoLink = "http://www.youtube.com/watch?v=5SkBZcvuuQs";
                    VideoType = YouTube;
                },
                                {
                    VideoId = "H_Xi-lVB4Zw";
                    VideoLink = "http://www.youtube.com/watch?v=H_Xi-lVB4Zw";
                    VideoType = YouTube;
                },
                                {
                    VideoId = TWhSjpsGvPQ;
                    VideoLink = "http://www.youtube.com/watch?v=TWhSjpsGvPQ";
                    VideoType = YouTube;
                },
                                {
                    VideoId = N2CJrhHEydA;
                    VideoLink = "http://www.youtube.com/watch?v=N2CJrhHEydA";
                    VideoType = YouTube;
                },
                                {
                    VideoId = Lq6faQVYcwY;
                    VideoLink = "http://www.youtube.com/watch?v=Lq6faQVYcwY";
                    VideoType = YouTube;
                },
                                {
                    VideoId = v8WjMiodcKo;
                    VideoLink = "http://www.youtube.com/watch?v=v8WjMiodcKo";
                    VideoType = YouTube;
                }
            );
        },
                {
            ApprovalStatus = Unapproved;
            CurrencyCode = "<null>";
            Packages = "<null>";
            Photos =             (
                157967
            );
            ServiceDescription = Ddhd;
            Speciality = 37;
            SpecialityName = "Hair and Makeup Stylist";
            UserFRPs =             (
                                {
                    AssetId = 157967;
                    CurrencyCode = INR;
                    DiscountedPrice = 900;
                    FRPId = 34;
                    Id = 4560;
                    Price = 1000;
                    SpecialityId = 37;
                    Status = Active;
                }
            );
            Videos =             (
                                {
                    VideoId = "onvkllwM-OI";
                    VideoLink = "http://www.youtube.com/watch?v=onvkllwM-OI";
                    VideoType = YouTube;
                },
                                {
                    VideoId = "_-cRVdTW2s8";
                    VideoLink = "http://www.youtube.com/watch?v=_-cRVdTW2s8";
                    VideoType = YouTube;
                },
                                {
                    VideoId = DGVJtAHzzDQ;
                    VideoLink = "http://www.youtube.com/watch?v=DGVJtAHzzDQ";
                    VideoType = YouTube;
                }
            );
        },
                {
            ApprovalStatus = Unapproved;
            CurrencyCode = "<null>";
            Packages = "<null>";
            Photos =             (
                157963,
                157962,
                157961
            );
            ServiceDescription = Test;
            Speciality = 55;
            SpecialityName = Transport;
            UserFRPs = "<null>";
            Videos =             (
                                {
                    VideoId = "cRchvv_dB2c";
                    VideoLink = "http://www.youtube.com/watch?v=cRchvv_dB2c";
                    VideoType = YouTube;
                },
                                {
                    VideoId = "onvkllwM-OI";
                    VideoLink = "http://www.youtube.com/watch?v=onvkllwM-OI";
                    VideoType = YouTube;
                },
                                {
                    VideoId = DGVJtAHzzDQ;
                    VideoLink = "http://www.youtube.com/watch?v=DGVJtAHzzDQ";
                    VideoType = YouTube;
                }
            );
        },
                {
            ApprovalStatus = Unapproved;
            CurrencyCode = "<null>";
            Packages = "<null>";
            Photos = "<null>";
            ServiceDescription = Baby;
            Speciality = 5;
            SpecialityName = "Children/Babies Photographer";
            UserFRPs = "<null>";
            Videos =             (
                                {
                    VideoId = "cRchvv_dB2c";
                    VideoLink = "http://www.youtube.com/watch?v=cRchvv_dB2c";
                    VideoType = YouTube;
                },
                                {
                    VideoId = DGVJtAHzzDQ;
                    VideoLink = "http://www.youtube.com/watch?v=DGVJtAHzzDQ";
                    VideoType = YouTube;
                }
            );
        },
}

我希望将所有空值替换为空字符串。

最佳答案

然后就那样做

NSString *json = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:yourDictionary options:0 error:nil] encoding: NSUTF8StringEncoding];

NSString *jsonWithoutNulls = [json stringByReplacingOccurrencesOfString:@"<null>" withString:@""];
NSData *data = [jsonWithoutNulls dataUsingEncoding:NSUTF8StringEncoding]
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

关于ios - 检查并用NSDictionary/NSArray中的空字符串替换所有空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37895396/

10-13 04:59