json - 在 Swift 中将 JSON 转换为 NSData,以及将 NSData 转换为 JSON

标签 json xcode swift nsdata

我在将 JSON 元素转换为 NSData 并将 NSData 变量转换回 JSON 时遇到问题在 Swift 中。

首先,我想提取以下 JSON 数据的 encryptedData 元素:

{
    "transactionID" : 12345,
    "encryptedData" : [-67,51,-38,61,-72,102,48]
}

进入 NSData encryptedData 变量,但似乎无法做到这一点。我使用 SwiftyJSON 来解析 JSON 如下:

let list: Array<JSON> = json["encryptedData"].arrayValue!

但这给了我一个 ScalarNumber 数组,我不知道如何将其存储到 NSData 对象中。

其次,我想从同一个 NSData 对象生成 JSON:

let jsonObject = [
    "transactionID" : 12345,
    "encryptedData" : encryptedData
]

但是 NSData encryptedData 对象没有被转换为 [-67,51,-38,61,-72,102,48],它似乎只是使 JSON 字符串无效。

有什么想法吗?

最佳答案

这是 swift 2.0 中 JSON 和 NSData 之间转换的代码(改编自 Shuo 的回答)

// Convert from NSData to json object
func nsdataToJSON(data: NSData) -> AnyObject? {
    do {
        return try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
    } catch let myJSONError {
        print(myJSONError)
    }
    return nil
}

// Convert from JSON to nsdata
func jsonToNSData(json: AnyObject) -> NSData?{
    do {
        return try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted)
    } catch let myJSONError {
        print(myJSONError)
    }
    return nil;
}

关于json - 在 Swift 中将 JSON 转换为 NSData,以及将 NSData 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840736/

相关文章:

java - 在 varnish 后面使用 reSTLet 时出错(反向代理)

ios - UIScrollview不允许我在整个图像上滚动

ios - 如何保存使用 UserDefaults 启动的应用程序之间的状态?

java - GSON JsonElement 转字符串

javascript - D3.js 更新堆积条形图

swift - 将 TensorFlow 导入 Xcode : The active toolchain is not compatible with playgrounds

ios - 如何为 armv7s 构建 Facebook iOS sdk?

ios - 在 SpriteKit 中检测 Sprite 碰撞而不反弹

ios - Swift CoreData 模型有帮助吗? (给出的例子)

python - 如何将 JSON 对象从 Perl 发送到 Python?