web-dev-qa-db-fra.com

Comment convertir NSDictionary en Json String en Swift (iOS, Xcode)?

Je souffre du problème suivant .... Mon NSDictionary est comme ça:

var dic : NSDictionary = [ "level" :
    [
        ["column" : 0,"down" : 0,"left" : 0,"right" : 0,"row" : 0,"up" : 0],
        ["column" : 1,"down" : 0,"left" : 0,"right" : 0,"row" : 0,"up" : 0],
        ["column" : 2,"down" : 0,"left" : 0,"right" : 0,"row" : 0,"up" : 0],
        ["column" : 0,"down" : 0,"left" : 0,"right" : 0,"row" : 1,"up" : 0],
        ["column" : 1,"down" : 0,"left" : 0,"right" : 0,"row" : 1,"up" : 0],
        ["column" : 2,"down" : 0,"left" : 0,"right" : 0,"row" : 1,"up" : 0]
    ]
]

Mais si j'imprime cela,

print(dic);  or print(“\(dic)”);

Le résultat est comme ça:

{
    level =     (
                {
            column = 0;
            down = 0;
            left = 0;
            right = 0;
            row = 0;
            up = 0;
        },
                {
            column = 1;
            down = 0;
            left = 0;
            right = 0;
            row = 0;
            up = 0;
        },
                {
            column = 2;
            down = 0;
            left = 0;
            right = 0;
            row = 0;
            up = 0;
        },
                {
            column = 0;
            down = 0;
            left = 0;
            right = 0;
            row = 1;
            up = 0;
        },
                {
            column = 1;
            down = 0;
            left = 0;
            right = 0;
            row = 1;
            up = 0;
        },
                {
            column = 2;
            down = 0;
            left = 0;
            right = 0;
            row = 1;
            up = 0;
        }
    ); }

Comment obtenir la chaîne Json exacte? Dans Swift, xcode?

12
Rivu Chakraborty

Pas besoin d'implémenter ce genre de logique complexe,

Vous pouvez simplement le faire

var jsonData: NSData = NSJSONSerialization.dataWithJSONObject(dictionary, options: NSJSONWritingOptions.PrettyPrinted, error: &error)!
    if error == nil {
        return NSString(data: jsonData, encoding: NSUTF8StringEncoding)! as String
    }

et si vous voulez l'envoyer avec l'API au serveur, pas besoin de le convertir même en String

29
Mihir Mehta