Skip to content

jaycanty/JJson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JJson

CI Status Version License Platform

About

This pod parses json and is syntactically similar to SwiftyJson. It uses an enum to wrap json into a safe type. This has not been tested enough to use for anything meaningful.

Installation

JJson is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "JJson"

Usage

Consider the following json

[
    {
        "foo_code": 404,
        "foo_rbody": {
            "query": {
                "info": {
                    "acme_no": "444444",
                    "road_runner": "123"
                },
                "error": "no_lunch",
                "message": "runner problem."
            }
        },
        "acme_no": "444444",
        "road_runner": "123",
        "xyzzy_code": 200,
        "xyzzy_rbody": {
            "api": {
                "items": [
                    {
                        "desc": "OK",
                        "id": 198,
                        "acme_no": "789",
                        "road_runner": "123",
                        "params": {
                            "bicycle": "2wheel",
                            "willie": "hungry",
                            "height": "1",
                            "coyote_id": "1511111"
                        },
                        "activity": "TRAP",
                        "state": "active",
                        "status": 200,
                        "type": "chase"
                    },
                    {
                        "desc": "OK",
                        "id": 198,
                        "acme_no": "789",
                        "road_runner": "123",
                        "params": {
                            "bicycle": "2wheel",
                            "willie": "hungry",
                            "height": "1",
                            "coyote_id": "1511111"
                        },
                        "activity": "TRAP",
                        "state": "active",
                        "status": 200,
                        "type": "chase"
                    }
                ]
            }
        }
    },
    {
        "foo_code": 404,
        "foo_rbody": {
            "query": {
                "info": {
                    "acme_no": "444444",
                    "road_runner": "123"
                },
                "error": "no_lunch",
                "message": "runner problem."
            }
        },
        "acme_no": "444444",
        "road_runner": "123",
        "xyzzy_code": 200,
        "xyzzy_rbody": {
            "api": {
                "items": [
                    {
                        "desc": "OK",
                        "id": 198,
                        "acme_no": "789",
                        "road_runner": "123",
                        "params": {
                            "bicycle": "2wheel",
                            "willie": "hungry",
                            "height": "1",
                            "coyote_id": "1511111"
                        },
                        "activity": "TRAP",
                        "state": "active",
                        "status": 200,
                        "type": "chase"
                    }
                ]
            }
        }
    }
]

Construct

let json = JJSON(data: data)

Everything is now wrapped into it's Optional(Type).

Subscripts

Array and dictionary subscripting allows for access:

json[1]?["foo_code"]?.int)! == 404

Array iterator

JJSON can be iterated like an array:

for item in json {
    let code = item["foo_code"]?.int
}

Dictionaries

To iterate dictionaries, use the .dict var:

if let dict = item.dict {
    for (key, value) in dict {
        if key == "foo_code" {
            XCTAssert(value.int! == 404)
        }
        if key == "road_runner" {
            XCTAssert(value.string! == "123")
        }
    }
}

Author

jayiosdev@gmail.com

License

JJson is available under the MIT license. See the LICENSE file for more info.