如何使用 swift 解析字典中的 Any

2023-12-05

我不知道它如何解析类型为 的字典值。 我能够读取字符串键和 Any 类型的值,并具有以下示例values对于给定的键

▿ 1 element
  ▿ 0 : 4 elements
    ▿ 0 : 2 elements
      - key : nativeName
      - value : Shqip
    ▿ 1 : 2 elements
      - key : iso639_2
      - value : sqi
    ▿ 2 : 2 elements
      - key : name
      - value : Albanian
    ▿ 3 : 2 elements
      - key : iso639_1
      - value : sq

从上面,我只需要提取“name”:“Estonian” 厌倦了循环,它无法使用 swift 来工作。

Code:

    f(key == “languages”){
          var nameArray = value as! NSArray
                for str in nameArray{
                                     print(str)     
                                    }
}

完整的 JSON 响应

[{"name":"Estonia","topLevelDomain":[".ee"],"alpha2Code":"EE","alpha3Code":"EST","callingCodes":["372"],"capital":"Tallinn","altSpellings":["EE","Eesti","Republic of Estonia","Eesti Vabariik"],"region":"Europe","subregion":"Northern Europe","population":1315944,"latlng":[59.0,26.0],"demonym":"Estonian","area":45227.0,"gini":36.0,"timezones":["UTC+02:00"],"borders":["LVA","RUS"],"nativeName":"Eesti","numericCode":"233","currencies":[{"code":"EUR","name":"Euro","symbol":"€"}],"languages":[{"iso639_1":"et","iso639_2":"est","name":"Estonian","nativeName":"eesti"}],"translations":{"de":"Estland","es":"Estonia","fr":"Estonie","ja":"エストニア","it":"Estonia","br":"Estônia","pt":"Estónia","nl":"Estland","hr":"Estonija","fa":"استونی"},"flag":"https://restcountries.eu/data/est.svg","regionalBlocs":[{"acronym":"EU","name":"European Union","otherAcronyms":[],"otherNames":[]}],"cioc":"EST"}]

不要使用任何。不要使用 NSArray。不要使用 NSDictionary。这就是斯威夫特!使用 Swift 类型和 JSON 的 Swift 解码。

这是作为数据对象的 JSON:

[
    {
     "name":"Estonia",
     "topLevelDomain":[".ee"],
     "alpha2Code":"EE",
     "alpha3Code":"EST",
     "callingCodes":["372"],
     "capital":"Tallinn",
     "altSpellings":["EE","Eesti","Republic of Estonia","Eesti Vabariik"],
     "region":"Europe",
     "subregion":"Northern Europe",
     "population":1315944,
     "latlng":[59.0,26.0],
     "demonym":"Estonian",
     "area":45227.0,
     "gini":36.0,
     "timezones":["UTC+02:00"],
     "borders":["LVA","RUS"],
     "nativeName":"Eesti",
     "numericCode":"233",
     "currencies":[{"code":"EUR","name":"Euro","symbol":"€"}],
     "languages":[
         {
          "iso639_1":"et",
          "iso639_2":"est",
          "name":"Estonian",
          "nativeName":"eesti"
         }
     ],
     "translations":
      {
       "de":"Estland",
       "es":"Estonia",
       "fr":"Estonie",
       "ja":"エストニア",
       "it":"Estonia",
       "br":"Estônia",
       "pt":"Estónia",
       "nl":"Estland",
       "hr":"Estonija",
       "fa":"استونی"
     },
     "flag":"https://restcountries.eu/data/est.svg",
     "regionalBlocs":[
       {
        "acronym":"EU",
        "name":"European Union",
        "otherAcronyms":[],
        "otherNames":[]
       }
     ],
     "cioc":"EST"
    }
]
"""
let data = json.data(using: .utf8)!

以下是从中提取语言名称的方法:

struct Language : Decodable {
    let name : String
}
struct Entry : Decodable {
    let languages : [Language]
}
let entries = try! JSONDecoder().decode([Entry].self, from: data)
let lang = entries[0].languages[0].name // Estonian
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 swift 解析字典中的 Any 的相关文章

  • 改变字符串颜色

    好的 这是我上一个问题的延续 但我有代码 private void btnTrans Click object sender EventArgs e var abrvStr inputBx Text foreach var kvp in d
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • 将数字分解为单个数字的数组

    如果我有整数 123 并且我想将数字分解为数组 1 2 3 最好的方法是什么 我已经搞乱了很多 并且我有以下工作 var number 123 var digits Array String number map Int strtoul S
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 如何退出两个嵌套循环? [复制]

    这个问题在这里已经有答案了 我使用 Java 已经有一段时间了 但我对循环的了解还有些欠缺 我知道如何创建 java 中存在的每个循环并跳出循环 然而 我最近思考了这个问题 假设我有两个嵌套循环 我可以只用一个循环来打破这两个循环吗brea
  • 测试文本字段中的 double 是否有值

    尝试检查从文本字段获得的双变量是否有值 让值 双倍 Double valueTextfield text if value isEmpty X if 值 nil X 如果 值 0 X 我该怎么做呢 您可以使用 Double 的 init 方
  • Firestore 读取包含子集合的文档的计费

    我正在制作一个应用程序 它存储用户使用我的应用程序学习了多少分钟 我的 Firestore 数据库以 用户 集合开始 每个用户都有自己的文档 该文档由其在 Auth 中生成的 userID 命名 我的问题是 如果我读取了他们的 userID
  • 具有默认值的不可失败枚举初始值设定项

    有没有办法在初始化时定义枚举rawValue会默认为某个值而不是失败吗 在值可能出乎意料的情况下很有用 即服务器 API 错误 你的意思是这样的吗 enum ErrorCode Int case NoErr 0 Err1 Err2 Last
  • 在 macOS 上通过 Apache 本地运行 Xcode DocC 文档

    Xcode 13 的 DocC 文档档案可以使用自定义 Apache 托管 htaccess文件中描述的向外部开发人员分发文档 https developer apple com documentation xcode distributi
  • 准确地从屏幕上的像素获取颜色并转换其颜色空间

    我需要从屏幕上的像素获取颜色并转换其颜色空间 我遇到的问题是 将值与数字色度计应用程序进行比较时 颜色值不相同 create a 1x1 image at the mouse position if let image CGImage CG
  • 如何在 UITableViewCell 上使用自定义初始值设定项?

    我有一个自定义 UITableViewCell 我想在我的表视图中使用它 这是我的单元格代码 class ReflectionCell UITableViewCell IBOutlet weak var header UILabel IBO
  • 循环浏览文件夹中的工作簿

    我正在尝试从文件夹中的所有工作簿复制某些单元格 下面的代码仅循环遍历第一个文件 VBA 新手 欢迎任何帮助 提前致谢 Sub Get Data Dim Directory As String Dim Filename As String D
  • 如何扩展 Array 以获得泛型类型?

    我有一个链表类 声明如下 class LinkedNode
  • 循环选项在 youtube js api 中不起作用

    我想知道为什么我的代码不循环播放视频 除了循环选项之外 一切正常 我真的需要它 多谢 div You need Flash player 8 and JavaScript enabled to view this video div
  • SwiftUI:为表单中的单元格添加动画

    我正在尝试动画化我的Form或者更确切地说是其中的细胞 我的问题是 下面的代码给了我一个很好的插入动画 但是对于删除 单元格在看起来很丑陋的延迟后突然被删除 import SwiftUI struct ContentView View St
  • 在 iOS Swift 2 中实现“阅读更多”按钮以展开 UITextView 的最简单方法?

    我希望实现一个 阅读更多 按钮 该按钮将扩展 UITextView 以便有人可以根据需要阅读整个文本 我还没有找到一种简单的方法来实现这一目标 我尝试 玩弄 容器的高度 但它没有给我想要的结果 我真的很感激任何想法 我会推荐你 ilyapu
  • 当前图像选择模式会擦除 UI

    我下面有一个非常简单的视图控制器 UI 实际上只是一个带有底部标签栏的按钮 import UIKit class ImageAdderViewController UIViewController override func viewDid
  • SwiftUI:如何让项目的拖放重新排序起作用?

    我有以下 SwiftUI 视图 struct ContentView View State var model Model var body some View ScrollView LazyVGrid columns columns sp
  • SpriteKit - 对多个 SKNode 上运行的多个 SKAction 进行排序

    我非常了解 SKAction API 但在多个节点上运行顺序代码时我无法获得良好的代码 这是示例代码 简化 import SpriteKit class GameScene SKScene weak var node1 SKNode wea

随机推荐

  • 有没有办法在 Windows 8 Metro 应用程序中获得推送滚动功能?

    在 Windows 8 Consumer Preview 中 将鼠标向开始屏幕的左边缘或右边缘移动会导致内容滚动 标准控件 以及当前发布的预览应用程序 似乎不支持这一点 有办法让这项工作发挥作用吗 我在今年的北美 TechEd 会议上提出了
  • 使用 AVFoundation 叠加两个视频

    我试图叠加两个视频 前景视频有些 Alpha 透明 我一直在关注苹果文档也本教程 每当我尝试播放两个相同的视频时my code它不会崩溃 但是 当我尝试向其提供两个不同的视频时 我收到此错误 VideoMaskingUtils export
  • 使用 OpenXML 将数据表插入 Excel

    我有一个数据表 根据用户的选择 将生成具有任意数量的行和列的动态数据表 我目前正在使用 OpenXml 来操作所述电子表格 我将如何插入数据表 Thanks Stu 我找到了一些代码 我可以对其进行修改以满足我的需要 希望有人觉得这很有用
  • 使用 Z3 命令行工具和超时查找次优解决方案(迄今为止最佳解决方案)

    I saw a post其中谈到了如何使用 Z3 的 python API 来获得最小化问题的次优解决方案 我有一个 MAXSMT 问题 我想知道如何使用 Z3 命令行工具在指定超时时找到次优解决方案 正在使用 t timeout单独的选项
  • 为什么 Airflow 更改 start_date 而不重命名 dag?

    我是一名数据工程师 经常使用气流 使用新的开始日期重新部署 dags 时 最佳实践如下所示here 不要更改 start date 间隔 当 DAG 运行时 调度程序数据库包含该 DAG 运行的实例 如果更改 start date 或间隔并
  • 如何模拟 moment.utc() 进行单元测试?

    我刚刚开始使用 Node 现在正在编写一些单元测试 对于前几个函数 我可以正常工作 但现在我发现了一个函数 其中包括moment utc 在里面 我的函数的简化版本如下所示 function calculate x positions ri
  • Android 应用内商品未出现在 Play 商店或应用中

    我创建了一个包含应用内产品的应用程序 我已在我的应用程序中添加了许可密钥和计费权限 并在开发者控制台中创建了应用程序内产品 这些产品处于活动状态 我已经构建了一个已发布的 alpha 版本 现在我可以使用其中一个测试帐户在 Google P
  • 如何使用 nltk.Regexp.parser() 解析自定义标签

    我的问题与这个未回答的问题类似 使用自定义 POS 标签进行 NLTK 分块 但我得到的错误是不同的 我正在尝试解析一个我添加了自己的域特定标签的句子 例如 u greatest P u internet NN u ever A u u a
  • Java,在多维数组中存储混合数据类型的最简单方法?

    我有一个包含一些字符串和整数的文件 我希望将其存储在二维 数组 中 这样做的最佳方法是什么 我已经有一段时间没有使用 Java 了 并且一直在使用 VBA 其中没有数据类型 所以我有点生疏了 如果必须的话 将其设为对象的二维数组 更好的解决
  • 通过 Python 请求重用 Django 中的连接

    正确的重复利用方式是怎样的Python 请求Django 中跨多个 HTTP 请求的连接 这就是我目前正在做的事情 import requests def do request data return requests get http f
  • Pandas:将 DataFrame 对象存储在另一个 DataFrame 中,即嵌套 DataFrame

    我想存储一个DataFrame对象作为行的列的值 这是我想要实现的目标的简化类比 gt gt gt df pd DataFrame 1 2 3 2 4 6 columns list DEF gt gt gt df 166 D E F 0 1
  • 在 ASP.NET 和 IIS7 中记录原始和压缩的 HTTP 响应

    沿着这个问题我想创建一个 HttpModule 来为我们进行一些请求和响应的自定义日志记录 使用该问题最流行的答案中的代码 我已经启动并运行了一个确实有效的 HttpModule class PortalTrafficModule IHtt
  • Linq to SQL - 多对多映射

    在我的项目中 我有 Player PlayerID 和数据 表 Games 表 GameID 名称 并且我制作了一个多对多表 PlayerGames PlayerID GameID 我创建了外键关系 PlayerID 和 GameID 是其
  • 如何创建自动安装 .Net Framework 4.5 的引导程序

    我正在使用InstallShield 2013 LE 并且我希望做一些类似于SQL CE 4 0的事情作为InstallShield先决条件 只是 我想安装 Net Framework 4 5 如果计算机上尚未安装 我有框架所需的文件 但
  • 转到仅显示公共成员的类的定义

    当我在 Visual Studio 中右键单击一个类 它是第三方程序集的一部分 不是我编写的代码 并选择 转到定义 时 我可以看到该类的所有方法 属性等 我注意到所有这些都是public and no private显示 或任何其他访问级别
  • 实体框架核心更新多对多

    我们正在将现有的 MVC6 EF6 应用程序移植到 Core EF Core 中有没有简单的方法来更新多对多关系 我在 EF6 中清除列表并用新数据覆盖它的旧代码不再有效 var model await db Products FindAs
  • Visual Studio 2015 更新 1,clang 错误

    当尝试在我的项目 Visual Studio 2015 Update 1 中使用带有 Visual Codegen 的新 clang 时 出现以下错误 clang exe error cannot specify o when genera
  • 将conf文件添加到Google Dataproc中的类路径

    我们正在 Scala 中使用 HOCON 配置构建 Spark 应用程序 该配置称为application conf 如果我添加application conf添加到我的 jar 文件并在 Google Dataproc 上启动作业 它可以
  • 未将对象引用设置为对象实例 ViewData["Title"] = "Index";

    所以我尝试使用模式在我的索引页面中创建一个注册剃刀页面 我导入到模式中的大部分表单代码都来自现有的外部注册页面 但是 当我启动 mvc 应用程序时 我收到一个Object reference not set to an instance o
  • 如何使用 swift 解析字典中的 Any

    我不知道它如何解析类型为 的字典值 我能够读取字符串键和 Any 类型的值 并具有以下示例values对于给定的键 1 element 0 4 elements 0 2 elements key nativeName value Shqip