how to parse string array with SwiftyJSON?

后端 未结 4 2107
长情又很酷
长情又很酷 2020-12-13 06:29

Using SwiftyJSON how would I parse the following JSON array into a Swift [String]?

{
    \"array\": [\"one\", \"two\", \"three\"]
}         


        
相关标签:
4条回答
  • 2020-12-13 06:45
    {
        "myArray": ["one", "two", "three"]
    }
    

    Using SwiftyJSON, you can get an array of JSON objects with:

    var jsonArr:[JSON] = JSON["myArray"].arrayValue
    

    Functional programming then makes it easy for you to convert to a [String] using the 'map' function. SwiftyJson let's you cast string type with subscript '.string'

    var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
    
    0 讨论(0)
  • 2020-12-13 06:53

    SwiftyJSON lets you extract a String? using $0.string or a non optional String using stringValue with a default empty String value if the type doesn't match.

    If you want to be sure to have an array of String with non false positives, use :

    var stringArray = self.json["array"].array?.flatMap({ $0.string })

    or in Swift 4.1

    var stringArray = self.json["array"].array?.compactMap({ $0.string })

    You can also replace self.json["array"].array by self.json["array"].arrayValue to have a [String] result instead of [String]?.

    0 讨论(0)
  • 2020-12-13 06:53

    Simply do this:

    for stringInArray in json["array"]{
    
        let value = stringInArray.1.stringValue
    }
    
    0 讨论(0)
  • 2020-12-13 06:54

    You have a Dictionary which holds an Array which holds Strings. When you access a value in the Dictionary, it returns a simple Array of Strings. You iterate it like you would any array.

    for obj in json["array"] {
        println(obj.stringValue)
    }
    
    0 讨论(0)
提交回复
热议问题