Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SWIFTUI中的JSON数据解析_Json_Swift - Fatal编程技术网

SWIFTUI中的JSON数据解析

SWIFTUI中的JSON数据解析,json,swift,Json,Swift,在我的基本代码中,我需要从JSON获取数据。但我只得到一个值。 我有以下输入: { "features": [ { "geometry": { "coordinates": [ 14.49961, 50.03353

在我的基本代码中,我需要从JSON获取数据。但我只得到一个值。 我有以下输入:

{
  "features": 
  [
    {
            "geometry":
            {
                    "coordinates": [
                        14.49961,
                        50.03353
                    ],
                    "type": "Point"
            }
        },
        {
            "geometry":
            {
                    "coordinates": [
                        14.4213,
                        50.00144
                    ],
                    "type": "Point"
            }
    }
  ],
  "type": "FeatureCollection"
}
这是SwiftUI中的代码,我需要从中获取所有数据并抛出JSON。字段类型工作的值,但字段的其余部分我无法获取-我做错了什么

如果有人帮我一个忙,我会很高兴的,告诉我,我做错了什么

res.features.geometry.coordinates
res是RequestA,RequestA有一个属性features,类型为[features]——一个特征数组

要素数组没有属性几何体,因此无法编写类似res.features.geometry的表达式

您的意思是RequestA features属性的类型为features而不是[features]?或者你是想为数组中的每一个特性做点什么,还是第一个特性等等


如果您对解析GeoJSON感兴趣,请参见

如果有人会解决类似的问题,我会像下面的内部主体视图一样解决它:

print(res.features![0].geometry.coordinates[0])

Karel

您应该用do catch将其包装并打印出错误,而不是强制展开您的try。@Andrew我不确定我是否正确理解您的意思,但是res.type变量有效,并且res.features.geometry.coordinates[0]变量无法写入所有Xcode报告类型[features]的错误值“没有成员”这在程序运行期间不是一个错误。您需要仔细阅读数组,因为功能是您的SwiftUI代码中的数组尝试列表和/或ForEach。我认为最好是您编写一点代码,将网络与数据分离。我建议做一个单元测试,它可以在没有网络负担的情况下很好地处理数据,并尝试解析。我解决了我的问题,但我也会阅读你的链接。谢谢这个回答让我有点困惑,你是强制展开功能,但是你问题中的代码中没有可选的。嗨,Joakim,谢谢你的回答。的确,这是一个错误。对于正确的主题,我编辑了它。如果属性真的是可选的,您应该使用吗?而不是!在那种情况下。但它真的是可选的吗?
print(res.features![0].geometry.coordinates[0])