FWJSON

@dynamicMemberLookup
public struct FWJSON
extension FWJSON: Swift.Collection
extension FWJSON: Swift.ExpressibleByStringLiteral
extension FWJSON: Swift.ExpressibleByIntegerLiteral
extension FWJSON: Swift.ExpressibleByBooleanLiteral
extension FWJSON: Swift.ExpressibleByFloatLiteral
extension FWJSON: Swift.ExpressibleByDictionaryLiteral
extension FWJSON: Swift.ExpressibleByArrayLiteral
extension FWJSON: Swift.RawRepresentable
extension FWJSON: Swift.CustomStringConvertible, Swift.CustomDebugStringConvertible
extension FWJSON: Swift.Comparable
extension FWJSON: Codable

FWJSON

  • Creates a JSON using the data.

    Declaration

    Swift

    public init(data: Data, options opt: JSONSerialization.ReadingOptions = []) throws

    Parameters

    data

    The NSData used to convert to json.Top level object in data is an NSArray or NSDictionary

    opt

    The JSON serialization reading options. [] by default.

    Return Value

    The created JSON

  • Creates a JSON object

    Note

    this does not parse a String into JSON, instead use init(parseJSON: String)

    Declaration

    Swift

    public init(_ object: Any)

    Parameters

    object

    the object

    Return Value

    the created JSON object

  • Parses the JSON string into a JSON object

    Declaration

    Swift

    public init(parseJSON jsonString: String)

    Parameters

    json

    the JSON string

    Return Value

    the created JSON object

  • Merges another JSON into this JSON, whereas primitive values which are not present in this JSON are getting added, present values getting overwritten, array values getting appended and nested JSONs getting merged the same way.

    Throws

    throws ErrorWrongType if the other JSONs differs in type on the top level.

    Declaration

    Swift

    public mutating func merge(with other: FWJSON) throws

    Parameters

    other

    The JSON which gets merged into this JSON

  • Merges another JSON into this JSON and returns a new JSON, whereas primitive values which are not present in this JSON are getting added, present values getting overwritten, array values getting appended and nested JSONS getting merged the same way.

    Throws

    throws ErrorWrongType if the other JSONs differs in type on the top level.

    Declaration

    Swift

    public func merged(with other: FWJSON) throws -> FWJSON

    Parameters

    other

    The JSON which gets merged into this JSON

    Return Value

    New merged JSON

  • JSON type, fileprivate setter

    Declaration

    Swift

    public fileprivate(set) var type: FWJSONType { get }
  • Error in JSON, fileprivate setter

    Declaration

    Swift

    public fileprivate(set) var error: FWJSONError? { get }
  • Object in JSON

    Declaration

    Swift

    public var object: Any { get set }
  • The static null JSON

    Declaration

    Swift

    public static var null: FWJSON { get }

JSON Base

Subscript

  • Find a json in the complex data structures by using array of Int and/or String as path.

    Example:

    let json = JSON[data]
    let path = [9,"list","person","name"]
    let name = json[path]
    

    The same as: let name = json[9][“list”][“person”][“name”]

    Declaration

    Swift

    public subscript(path: [FWJSONSubscriptType]) -> FWJSON { get set }

    Parameters

    path

    The target json’s path.

    Return Value

    Return a json found by the path or a null json with error

  • Find a json in the complex data structures by using array of Int and/or String as path.

    let name = json[9,“list”,“person”,“name”]

    The same as: let name = json[9][“list”][“person”][“name”]

    Declaration

    Swift

    public subscript(path: FWJSONSubscriptType...) -> FWJSON { get set }

    Parameters

    path

    The target json’s path. Example:

    Return Value

    Return a json found by the path or a null json with error

Dynamic

  • If type is .dictionary, return json whose object is dictionary[key] , otherwise return null json with error.

    Declaration

    Swift

    public subscript(dynamicMember key: String) -> FWJSON { get set }

LiteralConvertible

Raw

  • Declaration

    Swift

    public init?(rawValue: Any)
  • Declaration

    Swift

    public var rawValue: Any { get }
  • Undocumented

    Declaration

    Swift

    public func rawData(options opt: JSONSerialization.WritingOptions = JSONSerialization.WritingOptions(rawValue: 0)) throws -> Data
  • Undocumented

    Declaration

    Swift

    public func rawString(_ encoding: String.Encoding = .utf8, options opt: JSONSerialization.WritingOptions = .prettyPrinted) -> String?
  • Undocumented

    Declaration

    Swift

    public func rawString(_ options: [FWJSONWritingOptionsKeys : Any]) -> String?

Printable, DebugPrintable

  • Declaration

    Swift

    public var description: String { get }
  • Declaration

    Swift

    public var debugDescription: String { get }

Array

  • Undocumented

    Declaration

    Swift

    public var array: [FWJSON]? { get }
  • Undocumented

    Declaration

    Swift

    public var arrayValue: [FWJSON] { get }
  • Undocumented

    Declaration

    Swift

    public var arrayObject: [Any]? { get set }

Dictionary

  • Undocumented

    Declaration

    Swift

    public var dictionary: [String : FWJSON]? { get }
  • Undocumented

    Declaration

    Swift

    public var dictionaryValue: [String : FWJSON] { get }
  • Undocumented

    Declaration

    Swift

    public var dictionaryObject: [String : Any]? { get set }

Bool

  • Undocumented

    Declaration

    Swift

    public var bool: Bool? { get set }
  • Undocumented

    Declaration

    Swift

    public var boolValue: Bool { get set }

String

  • Undocumented

    Declaration

    Swift

    public var string: String? { get set }
  • Undocumented

    Declaration

    Swift

    public var stringValue: String { get set }

Number

  • Undocumented

    Declaration

    Swift

    public var number: NSNumber? { get set }
  • Undocumented

    Declaration

    Swift

    public var numberValue: NSNumber { get set }

Null

  • Undocumented

    Declaration

    Swift

    public var null: NSNull? { get set }
  • Undocumented

    Declaration

    Swift

    public func exists() -> Bool

URL

  • url

    Undocumented

    Declaration

    Swift

    public var url: URL? { get set }

Int, Double, Float, Int8, Int16, Int32, Int64

  • Undocumented

    Declaration

    Swift

    public var double: Double? { get set }
  • Undocumented

    Declaration

    Swift

    public var doubleValue: Double { get set }
  • Undocumented

    Declaration

    Swift

    public var float: Float? { get set }
  • Undocumented

    Declaration

    Swift

    public var floatValue: Float { get set }
  • int

    Undocumented

    Declaration

    Swift

    public var int: Int? { get set }
  • Undocumented

    Declaration

    Swift

    public var intValue: Int { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt: UInt? { get set }
  • Undocumented

    Declaration

    Swift

    public var uIntValue: UInt { get set }
  • Undocumented

    Declaration

    Swift

    public var int8: Int8? { get set }
  • Undocumented

    Declaration

    Swift

    public var int8Value: Int8 { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt8: UInt8? { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt8Value: UInt8 { get set }
  • Undocumented

    Declaration

    Swift

    public var int16: Int16? { get set }
  • Undocumented

    Declaration

    Swift

    public var int16Value: Int16 { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt16: UInt16? { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt16Value: UInt16 { get set }
  • Undocumented

    Declaration

    Swift

    public var int32: Int32? { get set }
  • Undocumented

    Declaration

    Swift

    public var int32Value: Int32 { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt32: UInt32? { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt32Value: UInt32 { get set }
  • Undocumented

    Declaration

    Swift

    public var int64: Int64? { get set }
  • Undocumented

    Declaration

    Swift

    public var int64Value: Int64 { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt64: UInt64? { get set }
  • Undocumented

    Declaration

    Swift

    public var uInt64Value: UInt64 { get set }

JSON: Codable

  • Declaration

    Swift

    public init(from decoder: Decoder) throws
  • Declaration

    Swift

    public func encode(to encoder: Encoder) throws