ios - 如何接收 json 字符串并将其转换为字典?

标签 ios json swift

我在下面粘贴了一个 JSON

{
    "name" :
    {
        "id" : "name",
        "label" : "name field",
        "disabled" : false,
        "display" : true,
        "pattern" : "^\\+(?:[0-9] ?){6,14}[0-9]$",
        "type" : "text"
    },
     "age" :
   {
    "id" : "age",
    "label" : "age",
    "disabled" : false,
    "display" : true,
    "pattern" : "^\\+(?:[0-9] ?){6,14}[0-9]$",
    "type" : "text"
   }
}

我需要将此 JSON 字符串传递到我的方法中并将其转换为字典类型 Dictionary<String,Dictionary<String,Any>> 的字典

首先我尝试在传递给方法之前验证 JSON 字符串,它总是说无效的 json

let jsonData = json.data(using: String.Encoding.utf8)

   if JSONSerialization.isValidJSONObject(jsonData) {
       print("Valid Json")
   } else {
       print("InValid Json")
   }

知道为什么这个 JSON 字符串总是返回无效 JSON?

我已经在 Playground 上试过了,请查看截图 enter image description here

最佳答案

您正在将数据检查为 isValidJsonObject,这就是它给出无效 json 的原因。 您应该尝试将数据转换为 jsonObject,然后检查 isValidJsonObject

我试过如下,它给出了有效的 json

 let jsonData = try! JSONSerialization.data(withJSONObject: json, options: [])

 let jsonObject = try!JSONSerialization.jsonObject(with: jsonData, options: [])

 if JSONSerialization.isValidJSONObject(test) {
               print("Valid Json")
  } else {
               print("InValid Json")
  }

关于ios - 如何接收 json 字符串并将其转换为字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63740740/

相关文章:

python - 在 Python 中序列化/反序列化类对象的最佳方法是什么?

php - iOS - JSONString 到 PHP

ios - 使用 AVAudioTime 安排将来播放的音频文件

ios - 自定义表格 View 单元格说明

swift - 无法更改 Xcode 6 动态表中的行高

ios - UICollectionView 滚动性能不佳

ios - 无法在核心数据中保存数据

java - 如何从具有子列表的列表中获取值并将所有值按顺序存储在另一个列表中

ios - AVExportSession 在后台运行

iphone - 根据不在设备设置上的应用程序设置,在 UIDatepicker 中以 12 和 24 小时格式显示时间