JJson
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
License
JJson is available under the MIT license. See the LICENSE file for more info.