簡體   English   中英

如何使用SwiftyJSON從Swift的JSON字符串獲取值?

[英]How to get a value from JSON string in Swift using SwiftyJSON?

我有一個JSON字符串,想從中獲取一些值。 我正在使用SwiftyJSON從JSON字符串中提取一些值。 但不確定為什么我從中得到空值。 如何使用SwiftyJSON從此JSON字符串中檢索所有值,例如version, ephemeralPublicKey, transactionId等?

碼:

let decryptedPaymentData:NSString! = NSString(data: encryptedPaymentData, encoding: NSUTF8StringEncoding)
print("decryptedPaymentData = \(decryptedPaymentData)")  

//extract values here  
let decryptedJsonStr = JSON(decryptedPaymentData)
let version = decryptedJsonStr["version"].stringValue
print("version = \(version)")

輸出:

    decryptedPaymentData = {"version":"EC_v1",
        "header":{
        "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1AhSWKm/KoXMmRU/dm825c8M3HZUYH/X8SH2zvzLgF9AN0ifWNH6KMLdRXhYSbnhVv0eDz+cJhf0I6o3oSc1bg==","publicKeyHash":"y9Gi+xcoSJjzegmkLQJ1KB7oehqavQom5EDwNCv+nHE=","transactionId":"7f83d3eff0de5d1313b6689d274d29dd7f71fe3763829f488ff4ac23a3dd40c5"}
        }

version = 

輸出解決方案:

let decryptedJsonStr = JSON.parse(decryptedPaymentData as String)
let version = decryptedJsonStr["version"].stringValue
let epk = decryptedJsonStr["header"]["ephemeralPublicKey"].stringValue
print("version = \(version)")
print("epk = \(epk)")

version = EC_v1
epk=MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoyXCcna7anfdPXVJcRFF6+SOgCgCqRqcdx/p0YrTy3nUU1LQ977EwuddRvnHKi5WemLnWIf3AzPDGLMY1L2Pog==

JSON(decryptedPaymentData)只是構造一個JSON對象,它是字符串"{\\"version\\":...}"

要解析它,您需要使用parse()函數:

let decryptedJsonStr = JSON.parse(decryptedPaymentData)
//                          ^^^^^

請注意,您不需要自己將NSData轉換為NSString,因為您可以使用init(data:options:error:)構造函數:

let decryptedJsonStr = JSON(data: encryptedPaymentData)
//                          ^^^^^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM