首页 > 解决方案 > 如何将变量用作数组中的选项?

问题描述

当我在搜索字段中输入从 php 检索的预选产品时,我正在创建一个下拉列表。来自 php 的产品将存储在 arrayData 变量中。我要做的是将数组中的选项设置为 arrayData 变量中的选项。我目前得到的结果是一行字符串-> "Option1","Option2","Option3","Option4","Option5"。我希望每个选项都是数组中的一个单独选项,而不是只有一行带有“”的字符串。有什么办法可以做到这一点?谢谢。

var arrayData = "\"Option1\",\"Option2\",\"Option3\",\"Option4\",\"Option5\""

var array = [arrayData]

当我手动放入选项时,var array ["option1","option2","option3"] 工作正常,但这些选项将在 php.ini 中是动态的。

当我将选项保存在变量中并尝试将变量放在数组中时,它只会显示整个字符串 aa 而不会使每个选项分开。

如何使 arrayData 变量充当数组的一部分而不是字符串?每个选项都是自己独立的东西,就像我在没有变量的情况下那样做。我试图尽我所能来表达这个问题。

标签: arraysswiftvariables

解决方案


您正在获取 json 字符串。所以,你需要转换为数组

我做了一个将 json 字符串转换为数组的函数

func getObjectFromJsonString(jsonString : String) -> Any?
{
    var sObject : Any?
    if let data = jsonString.data(using: .utf8, allowLossyConversion: false)
    {
        do
        {
            sObject = try JSONSerialization.jsonObject(with: data, options: .mutableContainers)
        }
        catch
        {
            print(error.localizedDescription)
        }
    }
    return sObject
}

您可以按如下方式使用它

if let dataArray = self.getObjectFromJsonString(jsonString: yourString) as? [String]
{
    print(dataArray) ---> ["Option1","Option2"...]
}

推荐阅读