Skip to content

Instantly share code, notes, and snippets.

@robertmryan
Last active August 28, 2019 22:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertmryan/3f181810c17bba9eb982073f4983d815 to your computer and use it in GitHub Desktop.
Save robertmryan/3f181810c17bba9eb982073f4983d815 to your computer and use it in GitHub Desktop.
func parse(message: String) -> String {
let json = JSON(parseJSON: message)
return json["Request"]["transactionId"].stringValue
}
let input = """
{"Request": {"content": {"Reset": {}}, "transactionId": "f7c4d630-552b-46d9-a37d-44450537b48d"}}
"""
let transactionID = parse(message: input)
print("transactionId:", transactionID)
let response = String(format: "{\"Response\":{\"transactionId\":\"%@\",\"content\":{\"Reset\":{}}}}", transactionID)
print("response:", response)
@robertmryan
Copy link
Author

The result of the above, as you’d expect, is:

transactionId: f7c4d630-552b-46d9-a37d-44450537b48d

response: {"Response":{"transactionId":"f7c4d630-552b-46d9-a37d-44450537b48d","content":{"Reset":{}}}}

@robertmryan
Copy link
Author

robertmryan commented Aug 28, 2019

If it’s failing for you, you might want to add some error checking, e.g.:

func parse(message: String) -> String {
    let json = JSON(parseJSON: message)

    let request = json["Request"]
    if let error = request.error {
        fatalError("request error: \(error)")
    }

    let transactionId = request["transactionId"]
    if let error = transactionId.error {
        fatalError("transactionId error: \(error)")
    }

    return transactionId.stringValue
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment