2017-01-24 1 views
1

J'utilise alamofire et swiftyjson pour l'obtenir. J'ai besoin d'une chaîne "ubus_rpc_session", j'ai essayé de cette façon, mais j'ai un tableau, j'ai besoin d'une chaîne. Pourriez-vous m'aider?swiftyjson obtenir la chaîne de json array

Alamofire.request(URL, method: .post, parameters: param, encoding: JSONEncoding.default).responseJSON { response in 
    switch response.result { 
    case .success(let value): 
     let json = JSON(value) 
     let token = json["result"].arrayValue.map({$0["ubus_rpc_session"].stringValue}) 
     print(token) 

{ "jsonrpc":"2.0", 
    "id":1, 
    "result":[ 
     0, 
     { 
     "ubus_rpc_session":"07e111d317f7c701dc4dfde1b0d4862d", 
     "timeout":300, 
     "expires":300, 
     "acls":{ 
      "access-group":{ 
       "superuser":[ 
        "read", 
        "write" 
       ], 
       "unauthenticated":[ 
        "read" 
       ] 
      }, 
      "ubus":{ 
       "*":[ 
        "*" 
       ], 
       "session":[ 
        "access", 
        "login" 
       ] 
      }, 
      "uci":{ 
       "*":[ 
        "read", 
        "write" 
       ] 
      } 
     }, 
     "data":{ 
      "username":"root" 
     } 
     } 
    ] 
} 

Répondre

0

Essayez cette

// Obtenir un tableau de chaîne à partir d'un tableau JSON (Dans leurs documents)

let arrayNames = json["users"].arrayValue.map({$0["name"].stringValue}) 


if let tempArray = json["result"].arrayValue { 
     for item in tempArray { 
       print(item) 
      if let title = item["ubus_rpc_session"].string { 
      println(title) 
     } 

     } 
     } 

Ou vérifier

let value = tempArray[1].dictionaryObject! 
         print(value["ubus_rpc_session"]!) 
+0

merci, la première façon fonctionne –