 
     // MARK: - Method
 
-    /// Dataからjsonデータを生成する
+    /// DataからJSONデータを生成する
     ///
     /// - parameter data:     生成元となるData。JSONSerialization.jsonObjectで変換できるデータであること
-    /// - parameter format:   生成するjsonのフォーマット
+    /// - parameter format:   生成するJSONのフォーマット
     ///
     /// - throws: `JSON.ExceptionType.createObjectError` : 変換に失敗した場合<br>
     ///           `JSON.ExceptionType.typeUnmatch` : フォーマットと一致しなかった場合

    public var exists: Bool { return data.exists }
    private var objectDefine: ObjectDefine { return (key, type) }

    /// jsonデータの配列を取得する。`array`であれば`JSONData`の配列を取得し、それ以外は空の配列が取得される
    public var array: [JSONData] {
        guard case .array(let list) = data else { return [] }
        return list

        }
    }

    /// objectから指定したキーのJSONデータを`String`型で取得する
    ///
    /// - Parameters:
    ///   - key: 取得対象のキー
    ///   - value: 指定したキーでデータが取得できなかった場合のデフォルト値
    /// - returns: 指定したキーのデータ。キーが存在しない、objectでは無い、または指定した`String`型ではなかった時はデフォルト値
    public subscript(key: Key, default value: String) -> String {
        return self[key].value(default: value)
    }

    /// objectから指定したキーのJSONデータを`Int`型で取得する
    ///
    /// - Parameters:
    ///   - key: 取得対象のキー
    ///   - value: 指定したキーでデータが取得できなかった場合のデフォルト値
    /// - returns: 指定したキーのデータ。キーが存在しない、objectでは無い、または指定した`Int`型ではなかった時はデフォルト値
    public subscript(key: Key, default value: Int) -> Int {
        return self[key].value(default: value)
    }

    /// objectから指定したキーのJSONデータを`Double`型で取得する
    ///
    /// - Parameters:
    ///   - key: 取得対象のキー
    ///   - value: 指定したキーでデータが取得できなかった場合のデフォルト値
    /// - returns: 指定したキーのデータ。キーが存在しない、objectでは無い、または指定した`Double`型ではなかった時はデフォルト値
    public subscript(key: Key, default value: Double) -> Double {
        return self[key].value(default: value)
    }

    /// objectから指定したキーのJSONデータを`Bool`型で取得する
    ///
    /// - Parameters:
    ///   - key: 取得対象のキー
    ///   - value: 指定したキーでデータが取得できなかった場合のデフォルト値
    /// - returns: 指定したキーのデータ。キーが存在しない、objectでは無い、または指定した`Bool`型ではなかった時はデフォルト値
    public subscript(key: Key, default value: Bool) -> Bool {
        return self[key].value(default: value)
    }

    /// arrayから指定したインデックスのJSONデータを取得する
    ///
    /// - Parameter index: 取得対象のインデックス
    /// - returns: 指定したインデックスのデータ。インデックスが存在しない時は`ExceptionType.outOfRange`。arrayでは無い時は`ExceptionType.notArray`
    public subscript(index: Int) -> JSONData {
        get {
            if case .array(let arr) = data {
