如何从函数内部获取 JSON 数据并将其快速显示在文本字段上?
Posted
技术标签:
【中文标题】如何从函数内部获取 JSON 数据并将其快速显示在文本字段上?【英文标题】:How get JSON data from inside a function and display it on textfield in swift? 【发布时间】:2019-12-01 10:02:40 【问题描述】:我一直在学习如何将 json 数据解析为 swift...我正在尝试将我的 pincode 区域显示到一个文本字段中...我创建了两个三个 swift 文件 mapview.swift、maphandler.swift 和 mapmodel。 swift.the 问题是我想从函数内部获取数据到另一个 swift 文件,以便我可以在文本字段上显示它...我尝试创建一个结构来存储该 pin 码,然后将其传递给 mapview .swift 但没有运气
这是能够获取密码作为数据的代码
func parseJson(Json:Data)
let decoder = JSONDecoder()
do
let decodedData = try decoder.decode(MapModel.self, from: Json)
let format = decodedData.results[0].formatted_address
var pinCode:String!
for item in decodedData.results[0].address_components
if item.types[0] == "postal_code"
pinCode = ( item.long_name)
print(pinCode)
catch
print(error)
return
我想要做的就是将该 pincode 数据获取到 mapview.swift 以便我可以在文本字段上显示它
【问题讨论】:
【参考方案1】:看起来你想要的是返回密码的函数。你可以这样做:
func parsePinCode(fromJson json: Data) -> String?
let decoder = JSONDecoder()
do
let decodedData = try decoder.decode(MapModel.self, from: json)
let format = decodedData.results[0].formatted_address
var pinCode:String!
for item in decodedData.results[0].address_components
if item.types[0] == "postal_code"
pinCode = (item.long_name)
// Return the pinCode if we found one
return pinCode
catch
print(error)
return nil
您可以通过从其他 swift 文件中调用它来使用此函数,如下所示(其中myJsonData
是您要解码的 json 数据):
let pinCode = parsePinCode(fromJson: myJsonData)
编辑:
如果你想返回多个值,你可以创建一个包含你想返回的所有值的结构。例如:
struct MapData
var pinCode: String?
var address: String?
func parsePinCode(fromJson json: Data) -> MapData?
let decoder = JSONDecoder()
do
let decodedData = try decoder.decode(MapModel.self, from: json)
var mapData = MapData()
mapData.address = decodedData.results[0].formatted_address
for item in decodedData.results[0].address_components
if item.types[0] == "postal_code"
mapData.pinCode = (item.long_name)
break
return mapData
catch
print(error)
return nil
【讨论】:
如果我在该函数中有两个需要检索的数据怎么办?? 我已经更新了答案,以展示如何使用结构从函数返回多个值。 在第二种情况下,我将值存储在结构中,我正确吗?? 无法访问它,哥们...我还有其他选项可以访问它吗以上是关于如何从函数内部获取 JSON 数据并将其快速显示在文本字段上?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 html 页面获取内部 html 并将其显示在 Angular 组件上?
如何获取嵌套的 JSON 数据列表并将其显示在 MatTable 中?
从外部 URL 获取 JSON 数据并将其以纯文本形式显示在 div 中