Как разобрать строку в swift - PullRequest
1 голос
/ 03 ноября 2019

Мой JSON такой:

"billerdetails": [
{
"id": "1",
"bname": "ACT Fibernet",
"bcustomerparms": "[{\"paramName\":\"Account Number/User Name\",\"dataType\":\"ALPHANUMERIC\",\"optional\":\"false\",\"minLength\":\"1\",\"maxLength\":\"50\"}]",
"breponseParams": "[{\"amtBreakupList\":[{\"amtBreakup\":\"BASE_BILL_AMOUNT\"}]}]",
......

Здесь я могу получить bcustomerparms. но здесь мне нужно bcustomerparms: paramName значение, подобное (номер учетной записи / имя пользователя) в одном желательном ... для этого я написал код, как показано ниже, но я не могу получить номер счета / имя пользователя в vairable.

Пожалуйста, помогите мне в следующем коде:

do{
let jsonObj = try JSONSerialization.jsonObject(with: respData, options: .allowFragments) as! [String: Any]
//print("the all make payment json is \(jsonObj)")

let billerdetailsArray = jsonObj["billerdetails"] as! [[String: Any]]

for billerdetail in billerdetailsArray {

    self.categoryName = billerdetail["bname"] as? String
    var customrParams = billerdetail["bcustomerparms"]
    print("biller customrParams \(customrParams)") 
 }

// здесь я получаю bcustomerparms

биллер customrParams Необязательно ([{"paramName": "СоединениеID "," dataType ":" ALPHANUMERIC "," необязательный ":" false "," minLength ":" 8 "," maxLength ":" 10 "}])

но здесь я хочутолько значение paramName, как получить это значение. Пожалуйста, помогите мне в коде выше.

1 Ответ

2 голосов
/ 03 ноября 2019

bcustomerparms значение - это строка, а не массив словарей. Вы можете попробовать

let customrParams = billerdetail["bcustomerparms"] as! String
let res = try JSONSerialization.jsonObject(with:Data(customrParams.utf8)) as! [[String: Any]]
for item in res {
  print(item["paramName"])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...