奇怪的打印JSON格式 [英] Strange printed JSON format

查看:96
本文介绍了奇怪的打印JSON格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在从HTTP请求中获取JSON时遇到问题. 在我的代码下面:

I've got a problem getting back a JSON from an HTTP request. Below my code:

class RestApiManager: NSObject {
static let sharedInstance = RestApiManager()

let baseURL = "url/code.php"

func getParcheggi() {
    let request = NSMutableURLRequest(URL: NSURL(string: link1)!)
    request.HTTPMethod = "POST"
    let postString = ""//id=13&name=Jack
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
        guard error == nil && data != nil else {
            print("error=\(error)")
            return
        }

        if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {
            print("statusCode should be 200, but is \(httpStatus.statusCode)")
            print("response = \(response)")
        }

        do{
            let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
            print(json)  //*** HERE I PRINT THE JSON ***
        }catch{

        }  
    }
    task.resume()
}}

这是我要返回的JSON:

This is the JSON i'm getting back:

{
"qk_response_sa" =     {
    ErroreResult =         {
        Codice = 0;
        Messaggio = ok;
    };
    Siti =         (
                    {
            Descrizione = "Quick Morelli";
            IDSito = 1;
            Indirizzo = "Via Morelli 64";
            Localita = Napoli;
            MaxAbb = 5;
            MaxPre = 5;
            Provincia = Na;
        },
                    {
            Descrizione = "Quick Linate ";
            IDSito = 2;
            Indirizzo = "Viale Corsica angolo via Terenzio 6";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 300;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Stazione Centrale ";
            IDSito = 4;
            Indirizzo = "Piazza Nazionale snc";
            Localita = Napoli;
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = Na;
        },
                    {
            Descrizione = "Quick Buenos Aires ";
            IDSito = 5;
            Indirizzo = "Corso Buenos Aires,21";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 50;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Lodi ";
            IDSito = 6;
            Indirizzo = "Via Giovanni Balilla Magistri ";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Sempione ";
            IDSito = 7;
            Indirizzo = "Via Corleone,7 ";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Palmanova";
            IDSito = 8;
            Indirizzo = "Via Benadir, 1";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Porta Capuana";
            IDSito = 9;
            Indirizzo = "Piazza San Francesco";
            Localita = Napoli;
            MaxAbb = 0;
            MaxPre = 80;
            Provincia = Na;
        },
                    {
            Descrizione = "Quick San Paolo";
            IDSito = 11;
            Indirizzo = "Via Cinthia";
            Localita = Napoli;
            MaxAbb = 0;
            MaxPre = 0;
            Provincia = Na;
        },
                    {
            Descrizione = "Quick Porta di Massa";
            IDSito = 12;
            Indirizzo = "Vico degli scoppettieri 47";
            Localita = Napoli;
            MaxAbb = 0;
            MaxPre = 0;
            Provincia = NA;
        },
                    {
            Descrizione = "Quick Policlinico";
            IDSito = 13;
            Indirizzo = "Via Zaccherini Alvisi 12";
            Localita = Bologna;
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = Bo;
        },
                    {
            Descrizione = "Quick Washington";
            IDSito = 14;
            Indirizzo = "Via Digione, 5";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = Mi;
        },
                    {
            Descrizione = "Quick Mondadori";
            IDSito = 15;
            Indirizzo = "Largo di Porta Pradella";
            Localita = Mantova;
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = Mn;
        },
                    {
            Descrizione = "Quick Mercato";
            IDSito = 16;
            Indirizzo = "Piazza Matteotti";
            Localita = Caserta;
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = Ce;
        },
                    {
            Descrizione = "Quick Garage Centrale";
            IDSito = 17;
            Indirizzo = "Via dei Fossi 507r";
            Localita = Firenze;
            MaxAbb = 0;
            MaxPre = 50;
            Provincia = Fi;
        },
                    {
            Descrizione = "Quick Aeroporto Palermo ";
            IDSito = 19;
            Indirizzo = "Aeroporto Falcone e Borsellino  - Cinisi ";
            Localita = "Palermo ";
            MaxAbb = 0;
            MaxPre = 180;
            Provincia = Pa;
        },
                    {
            Descrizione = "Quick  Aeroporto Brindisi";
            IDSito = 20;
            Indirizzo = "Contrada Baroncino, 11/A";
            Localita = Brindisi;
            MaxAbb = 0;
            MaxPre = 70;
            Provincia = BR;
        },
                    {
            Descrizione = "Quick Mostra Via Terracina ";
            IDSito = 22;
            Indirizzo = "Via Terracina, 197 ";
            Localita = "Napoli ";
            MaxAbb = 0;
            MaxPre = 300;
            Provincia = Na;
        },
                    {
            Descrizione = "Quick San Francesco Bari ";
            IDSito = 23;
            Indirizzo = "Via trevisani,54 A ";
            Localita = "Bari ";
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = Ba;
        },
                    {
            Descrizione = "Quick Mostra Viale Kennedy ";
            IDSito = 24;
            Indirizzo = "Viale Kennedy, 54 ";
            Localita = "Napoli ";
            MaxAbb = 0;
            MaxPre = 50;
            Provincia = NA;
        },
                    {
            Descrizione = "Quick Ospedale Mazzoni -Ascoli Piceno ";
            IDSito = 25;
            Indirizzo = "Via Salaria Inferiore ";
            Localita = "Ascoli Piceno ";
            MaxAbb = 0;
            MaxPre = 60;
            Provincia = AP;
        },
                    {
            Descrizione = "Quick Centro Happio - Roma ";
            IDSito = 26;
            Indirizzo = "Via Cesare Baronio 21-23";
            Localita = "Roma ";
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = RM;
        },
                    {
            Descrizione = "Quick Bonola - Milano ";
            IDSito = 27;
            Indirizzo = "Via Quarenghi n\U00b0 23  ";
            Localita = "Milano ";
            MaxAbb = 0;
            MaxPre = 150;
            Provincia = MI;
        },
                    {
            Descrizione = "Quick Aeroporto Verona Sky Parking ";
            IDSito = 28;
            Indirizzo = "Via Monte Baldo, 14 - Dossobuono di Villafranca ";
            Localita = "Verona ";
            MaxAbb = 0;
            MaxPre = 100;
            Provincia = VR;
        },
                    {
            Descrizione = "Quick Yes Parking  Aeroporto Milano Malpensa";
            IDSito = 29;
            Indirizzo = "Via Giusti n\U00b0101 - Somma Lombardo (VA)";
            Localita = "Milano ";
            MaxAbb = 0;
            MaxPre = 600;
            Provincia = MI;
        },
                    {
            Descrizione = "Sede Napoli";
            IDSito = 30;
            Indirizzo = "Via ";
            Localita = Napoli;
            MaxAbb = 0;
            MaxPre = 0;
            Provincia = NA;
        },
                    {
            Descrizione = "Sede Milano";
            IDSito = 31;
            Indirizzo = "";
            Localita = Milano;
            MaxAbb = 0;
            MaxPre = 0;
            Provincia = MI;
        }
    );
};}

为什么我得到这种JSON而不是标准的JSON:

Why I got this type of JSON instead of a standard one:

{"employees":[{"firstName":"John", "lastName":"Doe"},{"firstName":"Anna", "lastName":"Smith"},{"firstName":"Peter", "lastName"enter code here:"Jones"}]}

如果我尝试使用JSON阅读器在线显示,则会以正确的方式显示...

If I try online with a JSON reader it is shown in the correct way...

推荐答案

由于您未打印JSON字符串,因此您正在打印

try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)

属于AnyObject类型.

which is of AnyObject type.

如果要以文本形式查看JSON,请使用数据创建一个字符串:

If you want to see your JSON as text, make a String with the data:

if let stringJSON = String(data: data!, encoding: NSUTF8StringEncoding) {
    print(stringJSON)
}

这篇关于奇怪的打印JSON格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆