簡體   English   中英

如何將部分json數據解析成表

[英]How to parse part of json data into table

如何解析以下我只想解析少數部分的json。

```
{
      "head": {
        "StatusValue": 200,
        "StatusText": "Success"
      },
      "body": {
        "Data": [
          {
            "payer_type_id": 1,
            "payer_type": "Self Pay"
          },
          {
            "payer_type_id": 2,
            "payer_type": "Corporate"
          },
          {
            "payer_type_id": 6,
            "payer_type": "Insurance"
          }
        ],
        "RecordCount": 3,
        "TotalRecords": null
      }
}

如何僅解析Data鍵內的Data

預期結果應采用以下格式

Date = [["payer_type_id": 1,"payer_type": "Self Pay"],["payer_type_id": 2,"payer_type": "Corporate"],["payer_type_id": 6,"payer_type": "Insurance"]]

您可以使用 Codable 協議進行解析。

創建您的模型

struct APIRootModel : Codable  {
     let head : HeaderModel
     let body : BodyModel
 }

  struct HeaderModel :Codable{
     let StatusValue : Int
     let StatusText : String
  }

 struct BodyModel : Codable{
     let Data : [DataModel]
  }


 struct DataModel : Codable{
     let payer_type_id : Int
     let payer_type : String
 }

使用JSONDecoder()解碼你的 json

  let decoder = JSONDecoder()

    do {
        let rootModel = try decoder.decode(APIRootModel.self, from: jsonData)
        print(rootModel.body.data)
    } catch {
        print(error)
    }

[DataModel]用於您的 tableview 數據源。

嘗試這個:

    let jsonString = "your json string here"
    let dictObject = getDictionaryFromJsonString(dictString: jsonString)
    let bodyDict = dictObject["body"]
    let dataArray = bodyDict["Data"]

   func getDictionaryFromJsonString(dictString:String)-> 
        [String: Any] {
         do {
            return try  JSONSerialization.jsonObject(with: 
            dictString.data(using: String.Encoding.utf8, 
            allowLossyConversion: true)!, options:  
            JSONSerialization.ReadingOptions.allowFragments) as! 
            Dictionary
         } catch {
            return [:]
         }
    }

暫無
暫無

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

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