如何从函数内部获取JSON数据并将其快速显示在文本字段上?

时间:2019-12-01 10:02:40

标签: ios json swift function api

我一直在学习如何将json数据解析为swift ...我试图将我的密码区域显示为文本字段...我创建了两个三个swift文件mapview.swift,maphandler.swift和mapmodel。 swift。问题是我想将数据从函数内部获取到另一个swift文件,以便我可以在文本字段上显示它...我尝试创建一个结构来存储该密码,然后将其传递给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 

    }


}

我要做的就是将密码数据发送到mapview.swift,以便我可以在文本字段上显示它

1 个答案:

答案 0 :(得分:0)

看起来您想要的是返回PIN码的函数。您可以按照以下步骤进行操作:

<div class="new-task" id="task-input">
    <div >Task: <input id="add-new-task" type="text"></div>
    <div id="add-time">Time: <input type="text"></div>
    <button class ="save-task" id ="save-task" onclick="">Save task</button>
</div>

您可以通过从其他swift文件中调用此函数来使用此功能,如下所示(其中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 } 是要解码的json数据):

myJsonData

编辑:

如果要返回多个值,则可以使用所有要返回的值创建一个结构。例如:

let pinCode = parsePinCode(fromJson: myJsonData)