簡體   English   中英

如何快速解析JSON(將JSON字符串轉換為字符串)

[英]How to parse json in swift (convert json string to string)

我找不到一種快速地將簡單的json對象解析為字符串對象的方法。 我有一個網絡請求,它給了我這個json響應:

"\"asdf\""

當我嘗試快速將其解析為字符串時,它看起來像這樣:

"\"asdf\""

根據蘋果公司的這份文件,我只需要這樣做:

Apple Swift文檔

let jsonValue = responseData as? String

但這對我不起作用。

我只需要asdf作為字符串值。

誰能幫我嗎?

提前致謝。

編輯:

這是我的網絡請求代碼:

let stringUrl = "https://test.fangkarte.de/v1.3/test"
    let url = URL(string: stringUrl)!
    let request = URLRequest(url: url)
    let session = URLSession(configuration: URLSessionConfiguration.default)
    let task = session.dataTask(with: request, completionHandler: {(data, response, error) -> Void in
        if let data = data {
            let json = String(data: data, encoding: String.Encoding.utf8)
            let response = response as! HTTPURLResponse
            if 200...299 ~= response.statusCode {
                callback(true, response.statusCode, json!)
            } else {
                callback(false, response.statusCode, json!)
            }
        }
    })
    task.resume()

變量json的值為"\\"testString\\""而不是"testString"

您可以嘗試類似:

func parseJSON(_ data: Data) -> [String: Any]? {

    do {
        if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any],
            let body = json["data"] as? [String: Any] {
            return body
        }
    } catch {
        print("Error deserializing JSON: \n\(error)")
        return nil
    }
    return nil
}

使用方法:

let data = <variable holding JSON>.data(using: .utf8)
let jsonResult = parseJSON(data)

您會得到一個json字符串,因此您可以嘗試

  let jsonstring = "\"asdf\""
  let data = jsonstring.data(using: .utf8)

do {
     if let str = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as? String {
        print(str)
     }

   }
   catch let caught as NSError
   {
   }

暫無
暫無

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

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