簡體   English   中英

如何使用 SwiftyJSON 將字符串轉換為 JSON

[英]How to convert a string into JSON using SwiftyJSON

要轉換的字符串:

[{"description": "Hi","id":2,"img":"hi.png"},{"description": "pet","id":10,"img":"pet.png"},{"description": "Hello! :D","id":12,"img":"hello.png"}]

轉換字符串的代碼:

var json = JSON(stringLiteral: stringJSON)

該字符串被轉換為 JSON,當我嘗試計算這個 JSON 中有多少塊時(預期答案 = 3),我得到 0。

print(json.count)

控制台輸出: 0

我錯過了什么? 非常感謝幫助。

實際上,SwifyJSON 中有一個內置函數叫做parse

/**
 Create a JSON from JSON string
- parameter string: Normal json string like '{"a":"b"}'

- returns: The created JSON
*/
public static func parse(string:String) -> JSON {
    return string.dataUsingEncoding(NSUTF8StringEncoding)
        .flatMap({JSON(data: $0)}) ?? JSON(NSNull())
}

請注意

var json = JSON.parse(stringJSON)

它現在改為

var json = JSON.init(parseJSON:stringJSON)

我是這樣修的。

我將使用變量“string”作為包含 JSON 的變量。

1.

像這樣用 NSData 編碼刺痛

var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
  1. 取消編碼的字符串編碼(這可能聽起來有點奇怪呵呵):

    var finalJSON = JSON(數據:編碼字符串)

然后你可以用這個 JSON 做任何你喜歡的事情。

就像獲取其中的部分數量(這是真正的問題)

finalJSON.countprint(finalJSON[0])或任何您喜歡做的事情。

我使用如下:

let yourString = NSMutableString()

let dataToConvert = yourString.data(using: String.Encoding.utf8.rawValue)

let json = JSON(data: dataToConvert!)

print("\nYour string: " + String(describing: json))

斯威夫特4

let json = string.data(using: String.Encoding.utf8).flatMap({try? JSON(data: $0)}) ?? JSON(NSNull())

SwiftyJSON 中有一個內置的解析器:

let json = JSON.init(parseJSON: responseString)

不要忘記導入 SwiftyJSON!

暫無
暫無

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

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