当前位置: 首页 > 面试题库 >

在Swift中将JSON转换为NSData和将NSData转换为JSON

司宏伯
2023-03-14
问题内容

我在Swift 中将JSON元素转换为NSData,然后将NSData变量转换回时遇到了问题JSON

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

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

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

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

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

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

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

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

有任何想法吗?


问题答案:

在SwiftyJSON中,您可以使用rawData方法获取NSData:

if let encryptedData:NSData = json["encryptedData"].rawData() {
    NSLog(NSString(data: encryptedData, encoding: NSUTF8StringEncoding)!)
}

要根据需要生成JSON,应将数据转换为数组对象:

if let encryptedDataArray = JSON(data: encryptedData).arrayObject {
    let jsonObject:JSON = [
        "transactionID" : 12345,
        "encryptedData" : encryptedDataArray
    ]
    NSLog(NSString(data: jsonObject.rawData()!, encoding: NSUTF8StringEncoding)!)
}


 类似资料:
  • 问题内容: 我正在尝试保存到,然后在Swift中读回新的内容。要转换到我使用下面的代码: 如何将(即)转换回新的? 问题答案: 假设图像的比例为1。 在Swift 4.2中,将以下代码用于get Data()。

  • 问题内容: 怎么转换成?如果应该这样做 那怎么算呢? 以及如何转换为? 问题答案: 缓冲区长度为frameCapacity * bytesPerFrame。以下是可以在NSData和AVAudioPCMBuffer之间进行转换的函数。

  • 问题内容: 我最近一直在编写与iPhone交互的Web应用程序。iPhone iphone实际上将以plist的形式将信息发送到服务器。因此,看到类似…的情况并不少见。 现在,我知道此数据已以某种方式进行了哈希/加密。当我使用编辑器(“属性列表编辑器”)打开plist时,它向我展示了一种更加“易于阅读”的格式。例如,上面的数据将被转换为… 知道转换的方法是什么吗?主要是我希望将其放入Java St

  • 问题内容: 这是我的职责 首先将正确的哈希值打印到控制台,但在下一行程序崩溃。你能帮助我吗? 问题答案: 返回如果数据不表示一个有效的UTF-8序列(这是非常可能的)。然后以下崩溃。 任意二进制数据的可能字符串表示形式可能是十六进制字符串或Base-64编码的字符串。 甲 Base64编码串 可以简单地获得与 据我所知,没有内置的方法可以将二进制数据转换为 十六进制字符串 。在Swift中可能的实

  • 问题内容: 我正在尝试快速进行简单的DNS查找。到目前为止,这是我拥有的代码: 此时,“地址” NSArray中的每个元素都是一个CFDataRef对象,该对象包装了一个sockaddr结构。 由于CFDataRef可以免费连接到NSData,因此可以像这样循环遍历它们: 到目前为止,一切都很好(我认为)。当我在单元测试中运行时,这会打印出有效的外观数据。这是我被卡住的地方。为了我的一生,我不知道

  • 问题内容: 我得到了在Objective-C中将String转换为HEX-String的代码。 我想要在Swift中也一样。任何人都可以在Swift中翻译此代码,或者在Swift中有任何简单的方法吗? 问题答案: 这是我的例行十六进制字符串: 为了完整起见,这是我的十六进制字符串例程: 请注意,如上所示,我通常只在十六进制表示形式和实例之间进行转换(因为如果可以将信息表示为字符串,则可能一开始就不