奇怪的打印JSON格式 [英] Strange printed JSON format
本文介绍了奇怪的打印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屋!
查看全文