Swift: Променете JSON форматиран NSURLRequest на String

Това, което правя, е да изпращам JSON структуриран низ на NSULRRequest, да се отървавам от префикса urlscheme, да го сериализирам в JSON и след това каквото мога да направя с него.

urlscheme://{"Type":"photo","Name":"Photo13"}

Така че промених NSURLRequest на низ, като направих

    let url = request.URL
    let string = "\(url)"
    print(string)

но низът изглежда като

urlscheme://%7B%22Type%22:%22photo%22,%22Name%22:%22Photo13%22%7D

Така че трябва да го променя, като извиквам stringByReplacingOccurrencesOfString отново и отново при всички възможни промени.

replacedString = replacedString.stringByReplacingOccurrencesOfString("%7B",
        withString: "{",
        options: NSStringCompareOptions.LiteralSearch,
        range: nil)
.
..
...

Има ли по-добър начин да направите това в Swift?


person Kyle KIM    schedule 27.09.2015    source източник


Отговори (1)


Това, което имате там, е процентно кодиран низ. Това се прави, защото определени знаци имат специално значение в URL адреса. Методът NSString stringByRemovingPercentEncoding ще преобразува процентно кодиран низ обратно в нормален низ за вас.

Вижте този отговор

person Hugo Tunius    schedule 27.09.2015
comment
Благодаря ти. Xcode7 просто ме уведомете, че този метод вече е остарял и вместо това използвайте stringByRemovingPercentEncoding. - person Kyle KIM; 28.09.2015