2017-05-06 42 views
0

我知道我可以使用的選項JSONSerialization.WritingOptions.prettyPrinted這樣的:如果不知道JSON的結構,你可以在Swift或Obj-C中「漂亮地打印」JSON嗎?

do{ 
     let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String:AnyObject] 
     let prettyJson = try JSONSerialization.data(withJSONObject: json, options:JSONSerialization.WritingOptions.prettyPrinted) 
     if let prettyString = String(data: prettyJson, encoding: String.Encoding.utf8) { 
      print(prettyString) 
     } 
    } catch { 
     print("Error with Json: \(error)") 
    } 

,但我可以分析它自己得到輸出如下:

key: 
    value, 
key: 
    value, value, 
    . 
    . 
    . 

不知道是什麼類型的密鑰,值對期待? (例如:鍵:字符串,鍵:數組,鍵:字典)

+0

你想解析序列化的JSON並將其格式化爲漂亮的樣子,比如漂亮的打印版本?當然,你可以,但這將是很多工作。你基本上必須自己編寫一個JSON解析器,純粹是爲了顯示格式。你爲什麼想這麼做?這就是所謂的「解決的問題」。 –

+0

@DuncanC不需要編寫解析器 - 有一些明顯的限制,例如字典中的項目排序。編寫編碼器並不困難,但它也不是微不足道的。 – Sulthan

+0

你可能會喜歡'dump(json)' – Moritz

回答

-1

您可以使用構造函數String(describing:)以編程方式表示數據元素。它應該幫助你編寫你自己的例程來打印JSON,不過你喜歡。