gpt4 book ai didi

ios - Alamofire JSON 请求不从服务器中提取数据

转载 作者:可可西里 更新时间:2023-11-01 00:11:19 24 4
gpt4 key购买 nike

我正在使用 Alamofire 从服务器 (http://midlandgates.co.uk/JSON/reliveCacheData.json) 中提取一个 JSON 文件。为此,我有一个 Alamofire Request 函数,它应该拉取数据并将其写入一个名为 JSONDataClass 的类。

Alamofire 请求

Alamofire.request(.GET, "http://midlandgates.co.uk/JSON/reliveCacheData.json")
.response { request, response, data, error in

if let data = data {
let json = JSON(data:data)

for locationData in json {
let locationDataJSON = JSONDataClass(json: locationData.1)
self.cacheData.append(locationDataJSON)
}

for title in self.cacheData {
print(title.memoryTitle)
}
}

}

但是我的 printLn 没有打印来自 JSON 文件的数据,这表明请求或类存在问题。但是我是 swift 的新手,似乎无法解决问题,感谢所有帮助!

import Foundation
import CoreLocation
import SwiftyJSON

class JSONDataClass {

//Location MetaData
var postUser: String!
var memoryTitle: String!
var memoryDescription: String!
var memoryType: String!
var memoryEmotion: String!
var taggedFriends: String!

//Location LocationalData
var memoryLocation: CLLocationCoordinate2D

//MultiMedia AddressData
var media1: String!
var media2: String!
var media3: String!
var media4: String!
var media5: String!

//Writing to varibles
init(json: JSON) {
postUser = json["user"].stringValue
memoryTitle = json["title"].stringValue
memoryDescription = json["description"].stringValue
memoryType = json["type"].stringValue
memoryEmotion = json["emotion"].stringValue
taggedFriends = json["friends"].stringValue

memoryLocation = CLLocationCoordinate2D(latitude: json["latitude"].doubleValue, longitude: json["longitude"].doubleValue)

media1 = json["media1"].stringValue
media2 = json["media2"].stringValue
media3 = json["media3"].stringValue
media4 = json["media4"].stringValue
media5 = json["media5"].stringValue
}
}

最佳答案

(注意:JSON 内容的作者已根据我的回答修复了他的 JSON - 在发表这篇文章时我的回答是正确的)。


问题是您从服务器返回了无效的 JSON。

我将您的 SwiftyJSON 代码切换出来并将其包装在一个 try-catch 中,这说明了问题:

Alamofire.request(.GET, "http://midlandgates.co.uk/JSON/reliveCacheData.json")
.response { request, response, data, error in
//print("status \(response)")

do {

let myData = try NSJSONSerialization.JSONObjectWithData(data!,
options: .MutableLeaves)

print(myData)
} catch let error {
print(error)
}
}

我收到以下错误:

2015-12-30 13:47:06.129 {{ignore}}[10185:2174510] Unknown class log in Interface Builder file. Error Domain=NSCocoaErrorDomain Code=3840 "Unescaped control character around character 961." UserInfo={NSDebugDescription=Unescaped control character around character 961.}

此错误基本上意味着您从服务器返回了无效的 JSON。

通过 JSONLint 运行它以确保您的 json 有效:

http://jsonlint.com

关于ios - Alamofire JSON 请求不从服务器中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com