Как обработать этот JSON запрос swift 4 - PullRequest
0 голосов
/ 28 января 2020

Это мои Json данные, которые мне нужно проанализировать в xcode для отображения. Я хочу присвоить эти значения lat и long двум разным переменным



"latlng":[
28.0,
3.0
],
"capital":"Algiers",
i want to process that latLng into my json

Мой файл Xcode, я не могу напрямую использовать let latlng : Строка, которая выдает ошибку в этой точке, так как в ней хранятся два значения

struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String

    //if i put like this it given parsing error and doesn't parse entire data
    let latlng: String
}

Ответы [ 6 ]

0 голосов
/ 28 января 2020

Я рекомендую использовать этот сайт: https://app.quicktype.io/, если вы не знаете, как создавать структуры из ваших json данных;) это ленивый, быстрый, мощный и без ошибок!

0 голосов
/ 28 января 2020

latlng - это массив

struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String

    let latlng: [Double]
}
0 голосов
/ 28 января 2020

latlng - это массив типа Double not String

struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String
    let latlng: [Double]
}
0 голосов
/ 28 января 2020

используйте так

 struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String

    let latlng: [Float]
}
0 голосов
/ 28 января 2020

Обновите вашу модель как:

struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String

    let latlng: [Int]
}

Надеюсь, это поможет ...

0 голосов
/ 28 января 2020

Вы должны рассматривать ваше значение latlng как массив типа Double вместо String.

Обновите вашу модель, как показано ниже

struct jsonData :Decodable {
    let name:String
    let capital:String
    let alpha2Code:String
    let alpha3Code:String
    let region:String
    let subregion:String
    let flag:String

    let latlng: [Double]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...