Не удалось получить WordPress JSON - PullRequest
0 голосов
/ 20 мая 2019

У меня проблема с JSON, который я восстанавливаю с сайта с WordPress, проблема в том, что когда я пытаюсь обратиться к JSON, мой запрос ничего не возвращает.

Я пытался использовать Alamofire для восстановления моего JSON, но он тоже не работает, я не знаю, как восстановить JSON, который возвращает мой сайт с WordPress

Я попытался восстановить JSON следующим образом, но он не работает, ничего не возвращает:

let urlString = URL (строка: "https://www.sitioWeb.org.mx/wp-json/wp/v2/posts?per_page=100&tags=(id)")

    let request = URLRequest(url: urlString!)

    let task = URLSession.shared.dataTask(with: request){data, response, error in
        guard let data = data else{
            print("Solicitud fallida \(error!)")
            return
        }

        do{
            print("Recibimos respuesta")

            if let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: String]{
                DispatchQueue.main.async {
                    let titulo = json["rendered"]
                    let content = json["content"]
                    let excerpt = json["excerpt"]

                    print(json)
                    print(titulo!)
                    print(content!)
                    print(excerpt!)
                }
            }
        }catch let parseError {
            print("Error al parsear: \(parseError)")
            let responseString = String(data: data, encoding: .utf8)
            print("respuesta: \(responseString!)")
        }
    }
    task.resume()

Я также пробовал с Alamofire следующим образом:

Alamofire.request ("https://www.sitioWeb.org.mx/wp-json/wp/v2/posts?per_page=100&tags=(id)").responseJSON(completionHandler: {ответ в

        if let json = response.result.value as? JSON{
            print(json)
        }

    })

Но все равно не работает.

Это структура, которая имеет JSON:

[{ "id": 3438, «дата»: «2019-04-01T06: 02: 50», "date_gmt": "2019-04-01T12: 02: 50", "гид": { "rendered": "https://sitioWeb.org.mx/?p=3438" }, «модифицированный»: «2019-04-01T06: 02: 50», "ified_gmt ":" 2019-04-01T12: 02: 50 ", «Слизняк»: «Документо-2019», "статус": "опубликовать", "тип": "пост", "ссылка": "https://sitioWeb.org.mx/documento-2019 /", "заглавие": { "rendered": "Documento 2019" }, "содержание": { "rendered": "https://sitioWeb.org.mx/wp-content/uploads/2019/04/document.pdf \" class = \ "pdfemb-viewer \" style = \ "\" data-width = \ "max \" data-height = \ "max \" data-mobile-width = \ "500 \" data-scrollbar = \ "none \" data-download = \ "off \" data-tracking = \ "on \" data-newwindow = \ "on \" data-pagetextbox = \ "off \" data -scrolltotop = \ "off \" data-startzoom = \ "100 \" data-startfpzoom = \ "100 \" data-toolbar = \ "bottom \" data-toolbar-fixed = \ "off \"> document.pdf
\ п», «защищенный»: ложный }, "выдержка": { "представленный": "", «защищенный»: ложный }, «автор»: 1, «featured_media»: 0, "comment_status": "закрыто", "ping_status": "закрыто", «липкий»: ложь, "шаблон": "", "формат": "стандарт", "мета": [], "категории": [ 39 ], "теги": [ 54, 55 ], "_links": { "Я": [ { "href": "https://sitioWeb.org.mx/wp-json/wp/v2/posts/3438" } ], "коллекция": [ { "href": "https://sitioWeb.org.mx/wp-json/wp/v2/posts" } ], "около": [ { "href": "https://sitioWeb.org.mx/wp-json/wp/v2/types/post" } ], "автор": [ { «встраиваемый»: правда, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/users/1" } ], "ответы": [ { «встраиваемый»: правда, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/comments?post=3438" } ], "История версий": [ { "считать": 1, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/posts/3438/revisions" } ], "предшественник-версия": [ { "id": 3440, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/posts/3438/revisions/3440" } ], "wp: attachment": [ { "href": "https://sitioWeb.org.mx/wp-json/wp/v2/media?parent=3438" } ], "wp: term": [ { "таксономия": "категория", «встраиваемый»: правда, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/categories?post=3438" }, { "таксономия": "post_tag", «встраиваемый»: правда, "href": "https://sitioWeb.org.mx/wp-json/wp/v2/tags?post=3438" } ], "Кюри": [ { "имя": "wp", "href": "https://api.w.org/{rel}", "Templated": правда } ] }}]

Консоль не возвращает никаких ошибок в JSON

enter image description here

1 Ответ

1 голос
/ 20 мая 2019

Правильный тип [[String: Any]].

if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]]

Чтобы получить URL-адрес автора, перейдите к JSON следующим образом:

if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]] {
    if let links = json[0]["links"] as? [[String: Any]] {
        if let author = links[0]["author"]? as? [String: Any] {
            if let authorURL = author["href"] as? String {

            }
        }
    }
}
...