How to convert NSDictionary to Json String in Swift ( iOS, Xcode )?

34,806

No need to implement this kind of complex logic,

You can simply do this

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

and if you want to send it with API to server , no need to even convert it to String

Share:
34,806
Rivu Chakraborty
Author by

Rivu Chakraborty

Android Developer, Tech Speaker, Auther, Blogger, Community Organiser. More details: rivu.dev

Updated on December 24, 2021

Comments

  • Rivu Chakraborty
    Rivu Chakraborty over 2 years

    I'm suffering from the following problem.... My NSDictionary is like that :

    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]
        ]
    ]
    

    But If I print this,

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

    The Out put Is like that :

    {
        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;
            }
        ); }
    

    How Can I get exact Json String? In swift, xcode?

  • Rivu Chakraborty
    Rivu Chakraborty over 8 years
    Yes. This worked.... Thank you...
  • Nike Kov
    Nike Kov almost 7 years
    Look also here for swift 3 stackoverflow.com/a/29625483/5790492