🔖

[Swift5]Xcode上で見づらい辞書型の中身をJSON文字列にして整形して読みやすくする【作業効率UP】

2022/09/13に公開

何故DictionaryをJSON文字列にしたいのか

それは簡単でXcodeで辞書をprint objectした際に死ぬほど見づらいからです!
これでは作業効率が落ちるんじゃ!!

なので、Diciotnary→JSON文字列にして、そっから先はJSON整形ツールを使うことにします。
JSON整形ツール部分を実装してもいいと思いますが、それはおまかせします。

コード

import UIKit
import Foundation

let jsonObj = ["Name":"Taro",
               "Age": 1,
               "dict": ["Name": "Taro",
                        "Age": ["Name": "Taro",
                                "Age": 1
                               ]
                       ],
               "nulls": nil
] as [String : Any]

do {
    let jsonData = try JSONSerialization.data(withJSONObject: jsonObj, options: [])
    let jsonStr = String(bytes: jsonData, encoding: .utf8)!
    print(jsonStr)  // 生成されたJSON文字列 => {"Name":"Taro"}
} catch let error {
    print(error)
}
{"Name":"Taro","dict":{"Age":{"Age":1,"Name":"Taro"},"Name":"Taro"},"nulls":null,"Age":1}

これだと見づらいので、ツールを使います。
JSONきれい ~JSON整形ツール~ - instant tools

{
	"Name": "Taro",
	"dict": {
		"Age": {
			"Age": 1,
			"Name": "Taro"
		},
		"Name": "Taro"
	},
	"nulls": null,
	"Age": 1
}

ハマったこと

ちなみにJSONSerializationでは文字列か数値しか取り扱えないので、Date()をvalueにそのまま入れるとエラーになり、クラッシュします。
文字列もしくは数値のvalueかどうかを確認しましょう

Discussion