IOS swiftUI 无法从本地文件读取 json [关闭]

2023-12-01

我是 IOS 开发新手,我正在使用 swiftUI 并遵循本教程https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation但我已经被困在这里一段时间了,在教程中,他们从项目中的 json 文件传递​​了一项

struct LandmarkRow_Previews: PreviewProvider {
static var previews: some View {
    LandmarkRow(landmark: landmarkData[0])
   }
}

我正在尝试对自己的数据执行相同的操作,我有一个名为 sorteosData.json 的文件,但是当我尝试将第一项传递到预览时,它显示“使用未解析的标识符”

struct PastSorteoRowView_Previews: PreviewProvider {
static var previews: some View {
    PastSorteoRowView(sorteo: sorteosData[0])
}

Xcode 无法识别 sorteosData[0],我该如何解决这个问题? 我已遵循教程中的所有步骤,但由于某种原因,我无法将数据传递到预览


With JSON你需要使用JSONDecoder()。假设我们有这个文件:

[
    {
        "name": "Banana",
        "points": 200,
        "description": "A banana grown in Ecuador."
    },
    {
        "name": "Orange",
        "points": 100
    }
]

为了方便起见,您可以创建一个struct(即使对于嵌套元素也很方便):

struct product: Codable, Hashable {
    var name: String
    var points: Int
    var description: String?
}

创建一个函数来解析你的JSON捆绑称为list.json返回一个array of struct product:

func jsonTwo() -> [product]{
    let url = Bundle.main.url(forResource: "list", withExtension: "json")!
    let data = try! Data(contentsOf: url)
    let decoder = JSONDecoder()
    let products = try? decoder.decode([product].self, from: data)
    return products!
}

最后设置你的界面:

var body: some View {
   List{
     ForEach(jsonTwo(), id: \.self) { item in
       VStack(alignment: .leading, spacing: 0){
          Text("name:\(item.name) - points:\(item.points)")
          Text("\(item.description ?? "")")
       }
     }
   }
}

完整代码:

struct product: Codable, Hashable {
    var name: String
    var points: Int
    var description: String?
}

struct ContentView: View {
    
    func jsonTwo() -> [product]{
        let url = Bundle.main.url(forResource: "list", withExtension: "json")!
        let data = try! Data(contentsOf: url)
        let decoder = JSONDecoder()
        let products = try? decoder.decode([product].self, from: data)
        return products!
    }

    
    var body: some View {
        List{
            ForEach(jsonTwo(), id: \.self) { item in
                VStack(alignment: .leading, spacing: 0){
                    Text("name:\(item.name) - points:\(item.points)")
                    Text("\(item.description ?? "")")
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IOS swiftUI 无法从本地文件读取 json [关闭] 的相关文章

  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • XCode 无法将 iPhone 应用程序部署到 iPhone 3GS

    因此 我构建了我的 iPhone 应用程序 它在模拟器中运行良好 因此我想将其部署到我的 iPhone 上进行最后一轮测试 然后再使用我的分发配置文件进行公开 Beta 测试 我已经这样做过很多次了 从来没有出现过问题 然而 自从上次测试运
  • 确定 SceneKit 中 SKVideoNode 的视频大小/长宽比

    如何从 AVPlayer 获取视频的视频大小来设置节点的几何大小 例如 我有一个具有宽度和高度的 SCNPlane let planeGeo SCNPlane width 5 height 5 所以现在我实例化我的视频播放器 let vid
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 如何在 React Native 中构造 POST 请求主体,而不是使用字符串化的 json,而是使用 json?

    我正在努力用 React Native 替换一些本机代码 预期的 POST 请求 在AFNetworking in Charles应该是这样的 代码片段 NSError err NSData paramData NSJSONSerializ
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • Xcode 8 / Swift 3:“UIViewController 类型的表达式?未使用”警告

    我有以下函数 它之前编译得很干净 但在 Xcode 8 中生成警告 func exitViewController navigationController popViewController animated true UIViewCon

随机推荐

  • 将 Windows 7 手机的联系人列表集成到应用程序中

    如何获取 Windows 7 手机的联系人列表以在 win7 手机应用程序中使用 对于早期版本的 Windows Phone 7 SDK 只能使用选择器检索电话号码或电子邮件地址以及其他一些信息 现在 使用 7 1 Mango SDK 可以
  • 如何自动将版本号插入AssemblyName

    我试图建立在这个问题的基础上 从 MSBuild 中的文件读取单个值 我的目标是有一个位置来放置多个项目中使用的版本号 并且我还希望其中一个项目的 DLL 文件名中包含版本号的一部分 根据上面的问题 我已经得到了第一部分 但我在第二部分上遇
  • Spring MVC,从请求生成表单支持对象?

    我正在使用 Spring MVC 2 5 并且尝试从 GET 请求加载 JSTL 表单对象 我有 Hibernate POJO 作为我的支持对象 请求中有一个页面指向另一个带有类 id 行主键 的页面 该请求类似于 newpage htm
  • 通过 R 在 SQL 查询中粘贴值

    我有以下包含 AxiomaID 的数据框 x lt c 0123 234 2348 345 3454 并尝试在 R 中运行以下 SQL 查询 SQL6 lt data frame sqlQuery myConn SELECT top 10
  • 创建 bean 'entityManagerFactory' 时出错,嵌套 HibernateException:无法获取默认的 Bean 验证工厂

    关于这个主题已经提出了很多问题 但似乎没有一个能解决我的问题 我尝试使用 Maven Spring Hibernate 和 JPA 以及 Mysql 5 5 构建一个示例项目 这是一个测试桌面应用程序 我不知道 我哪里错了 mvn clea
  • 在php中将数组转换为png [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想知道如何将颜色数组转换为 png 图像文件 该数组称为 pixels 请帮我 im
  • PhoneGap Android Plugin - 关闭插件 Activity

    我编写了一个 PhoneGap Android 插件 并在那里打开了第二个活动 cordova getActivity runOnUiThread new Runnable Override public void run Context
  • PHP 如何知道何时删除会话?

    我认为会话存储在客户端 因为浏览器关闭时会话会被 删除 然而 今天我被告知这不是真的 会话存储在服务器上 那么会话如何知道浏览器何时关闭 以便会话被删除呢 事实并非如此 有两个因素在起作用 the cookie 的生命周期在客户端 该 co
  • 如何使 C 中的方法链流畅?

    现有的 C API 如下所示 data typedef struct int properties Widget interface Widget SetWidth Widget const w int width return w Wid
  • 如果 margin-left = -3200 则禁用按钮

    我正在尝试找出如何禁用按钮margin left在一个元素上等于 3200像素 我的以下内容似乎在页面加载时运行我的函数 有人能看到我哪里出错了吗 if hero carousel offset left 3200 alert test 你
  • Docker 1.12 Swarm 模式 - 单节点上同一服务的负载均衡任务

    在 Docker 1 12 Swarm 模式上 如果我在单个节点中运行同一服务的多个任务并发布相同的端口 是否可以在任务之间进行任何类型的负载平衡 或者 拥有比节点数量更多的服务实例的目的是什么 Eg node swarm init nod
  • NSAttributedString EXC_BAD_ACCESS KERN_INVALID_ADDRESS 崩溃

    我在用NSAttributedString在我的代码中 我有时会遇到以下崩溃 崩溃 com apple main thread EXC BAD ACCESS KERN INVALID ADDRESS 0x00000000114f2841 生
  • 没有名为tensor flow的模块——iPython笔记本

    我知道这可能是一个老问题 但我仍然无法从现成的 Q A 中找到解决方案 问题是这样的 我正在关注Udacity 机器学习 及其作业 以及需要使用iPython Notebook 和张量流 细节 https github com Omarit
  • mongoDB 2.2.1 - 数据库无效

    当我跑步时db users validate 在 mongo 终端中 我得到回复 errmsg ns not found ok 0 valid false 这是正常的吗 我该如何解决它 因为mongod repair and db repa
  • 使用 jquery 删除元素之间的不间断空格 ( )

    如何使用 jquery 删除 html 元素之间出现的不间断空格 nbsp 例如 以下代码是由 cms 生成的 div span content span nbsp span content span div 我可以使用选择器来定位元素 下
  • Javascript Map.set 位置

    有什么方法可以在现有键之前或之后将新元素插入到 Map 中吗 至于数组将是 arr splice
  • 如何在场景中的步骤之间添加静态等待?

    我使用了以下选项 def sleep function seconds for i 0 i lt seconds i java lang Thread sleep 1 1000 karate log i call sleep 10 但我想了
  • 无法将按钮文本设置为“<<<”

    我试图将 xml 中的按钮文本设置为
  • 两个 Node.js 服务器之间的文件/数据传输

    我正在尝试建立一个小型系统 其中一台服务器 又名传感器 在看到另一台服务器可用时将数据文件传输到另一台服务器 又名服务器 都运行 Node js 应用程序 理想情况下 服务器应该侦听来自传感器的连接 建立连接后 传感器会将所有可用的数据文件
  • IOS swiftUI 无法从本地文件读取 json [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我是 IOS 开发新手 我正在使用 swiftUI 并遵循本教程https developer apple com tutorials swiftui building lists a