let myUrl = URL(string: "http://app.avatejaratsaba1.com/api/Values/GetPriceList?paymentType=1&goodType=102")
var request = URLRequest(url: myUrl!)
request.httpMethod = "GET" // compose a query string
request.addValue("application/json", forHTTPHeaderField: "content-type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = URLSession.shared.dataTask(with: request)
{
(data : Data? , response : URLResponse? , error : Error?) in
self.removeActivtyIndicator(activityIndicator: MyActivityIndicator)
if error != nil
{
self.DisplayMessage(UserMessage: "2Could not successfully perform this request , please try again later.")
print("error = \(String(describing : error))")
}
// let's convert response sent from a server side code to a NSDictionary object:
do { let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = json
{
我在另一个viewcontroller中使用另一个url的确切代码,它正常工作!它在Postman中正常工作!!
我快速编码
更新::::
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [[String:Any]] {
var goodNameArray = [String].self
for i in 0..<json.count{
guard let goodName = json[i]["goodName"] as? String else{return}
Global.GlobalVariable.GoodName = goodNameArray.append(goodName)
}
print("GoodNames: \(goodNameArray)")
}
} catch let parseError {
print("parsing error: \(parseError)")
let responseString = String(data: data, encoding: .utf8)
print("raw response: \(String(describing: responseString))")
}
}
task.resume()
,它返回的错误是:
无法调用&#39;追加&#39;使用类型&#39;(字符串)&#39;
的参数列表
全局var代码:::::
class Global: UIViewController
{
struct GlobalVariable
{
static var companyName = "Company"
static var bigName = ((0) , (""))
static var names = ["Loading..." , ""]
////////////
static var AgentInfo = "agentinfo"
////////////
static var genaral_goodID = 000
static var GoodName = [String]()
static var PriceVariableName = "PriceVariableName"
static var paymentType = "paymentType"
static var fee = "fee"
static var exipreDate = "exipreDate"
static var expireTime = "expireTime"
}
}
已更新::::::
uitable
class secondtable : TableViewController
{
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Global.GlobalVariable.names.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let content = Global.GlobalVariable.GoodName[indexPath.row]
cell.textLabel?.text = content
//cell.accessoryType = .disclosureIndicator
return cell
}
} 在这段我的代码中,我应该使用&#34; goodName&#34;
来填充表格。答案 0 :(得分:3)
我以下面的方式测试,它对我有用。import * as firebase from 'Firebase';
public items: Array<any> = [];
firebase.database().ref('favorite_locations/' + this.key).once('value').then(function(snapshot) {
this.items = [];
snapshot.forEach( itemSnap => {
this.items.push(itemSnap.val());
return false;
});
中的回答。不要强行打开包装。
array of dictionaries
答案 1 :(得分:1)
通过阅读Codable
协议,帮自己一个忙,节省一些时间。它将允许您通过基本上只定义您的结构生成一个相当不错的JSON解析器。如果出现问题,使用JSONDecoder.decode
将为您提供更有价值的错误信息。
由于您的API目前仅使用您提供给我们的URL提供空数组,因此很难提出任何有意义的代码。您应该使用JSON的简单字符串表示形式,至少是一个向我们展示结构的最小化形式。这样你的问题就不会取决于可能相当复杂的网络服务的运作。