将返回的文本解析为 Swift 中的 JSON 对象?
Parse Returned Text into JSON Object in Swift?
已解决:
我解决了这个问题:
if let returnedData = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSString? {
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
let trimmedDataString = ((dataString.stringByReplacingOccurrencesOfString("YAHOO.Finance.SymbolSuggest.ssCallback", withString: "") as NSString).stringByReplacingOccurrencesOfString("(", withString: "") as NSString).stringByReplacingOccurrencesOfString(")", withString: "")
let dataFromDataString = trimmedDataString.dataUsingEncoding(NSUTF8StringEncoding)!
if let jsonObject: AnyObject = NSJSONSerialization.JSONObjectWithData(dataFromDataString, options: .allZeros, error: nil) {
if let resultSet = jsonObject["ResultSet"] as! NSDictionary? {
println(resultSet)
}
}
}
原题:
我目前正在使用 Yahoo! Finance 的 YQL 到 return 股票数据。我能够查询股票并成功 return 想要的信息,但前提是我知道股票的代码(AAPL、GOOG、FDX)。但是,我希望能够复制 iOS' Stocks 应用程序的搜索功能,它允许您在键入字符串时执行股票代码的实时搜索。
当使用 this URL 检索信息时,我得到一个 JSON 对我没有用的响应:
{"query":{"count":0,"created":"2015-06-01T23:49:49Z","lang":"en-us","results":null}}
但是,我已经能够从 this URL 中找到我要查找的内容,但数据并未以 JSON 格式 returned我目前知道如何处理:
YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"k","Result":[{"symbol":"K","name":"Kellogg Company","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KNDI","name":"Kandi Technologies Group, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KO","name":"The Coca-Cola Company","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KMI","name":"Kinder Morgan, Inc.","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KMB","name":"Kimberly-Clark Corporation","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"GMCR","name":"Keurig Green Mountain, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KORS","name":"Michael Kors Holdings Limited","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KLAC","name":"KLA-Tencor Corporation","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KRFT","name":"Kraft Foods Group, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^KLSE","name":"FTSE Bursa Malaysia KLCI","exch":"KLS","type":"I","exchDisp":"Kuala Lumpur Stock Exchange ","typeDisp":"Index"}]}})
我整天都在寻找一种方法来将这个 returned 字符串转换为 JSON 对象,以便在我的应用程序中使用。
因为它没有以我知道如何用 NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)
解析的 JSON 格式返回,所以我一直在寻找一种创建 JSON 对象的方法从字符串。有没有我可以指出的方向,我只是错过了?
试试这个:
if let returnedData = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSString? {
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
if let jsonObject: AnyObject = NSJSONSerialization.JSONObjectWithData(dataString, options: .allZeros, error: nil) {
if let resultSet = resultSet[yourDictionaryObject objectForKey:@"YAHOO.Finance.SymbolSuggest.ssCallback"]
//This should return a array of dictionary
}
}
已解决:
我解决了这个问题:
if let returnedData = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSString? {
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
let trimmedDataString = ((dataString.stringByReplacingOccurrencesOfString("YAHOO.Finance.SymbolSuggest.ssCallback", withString: "") as NSString).stringByReplacingOccurrencesOfString("(", withString: "") as NSString).stringByReplacingOccurrencesOfString(")", withString: "")
let dataFromDataString = trimmedDataString.dataUsingEncoding(NSUTF8StringEncoding)!
if let jsonObject: AnyObject = NSJSONSerialization.JSONObjectWithData(dataFromDataString, options: .allZeros, error: nil) {
if let resultSet = jsonObject["ResultSet"] as! NSDictionary? {
println(resultSet)
}
}
}
原题:
我目前正在使用 Yahoo! Finance 的 YQL 到 return 股票数据。我能够查询股票并成功 return 想要的信息,但前提是我知道股票的代码(AAPL、GOOG、FDX)。但是,我希望能够复制 iOS' Stocks 应用程序的搜索功能,它允许您在键入字符串时执行股票代码的实时搜索。
当使用 this URL 检索信息时,我得到一个 JSON 对我没有用的响应:
{"query":{"count":0,"created":"2015-06-01T23:49:49Z","lang":"en-us","results":null}}
但是,我已经能够从 this URL 中找到我要查找的内容,但数据并未以 JSON 格式 returned我目前知道如何处理:
YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"k","Result":[{"symbol":"K","name":"Kellogg Company","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KNDI","name":"Kandi Technologies Group, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KO","name":"The Coca-Cola Company","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KMI","name":"Kinder Morgan, Inc.","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KMB","name":"Kimberly-Clark Corporation","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"GMCR","name":"Keurig Green Mountain, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KORS","name":"Michael Kors Holdings Limited","exch":"NYQ","type":"S","exchDisp":"NYSE","typeDisp":"Equity"},{"symbol":"KLAC","name":"KLA-Tencor Corporation","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"KRFT","name":"Kraft Foods Group, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^KLSE","name":"FTSE Bursa Malaysia KLCI","exch":"KLS","type":"I","exchDisp":"Kuala Lumpur Stock Exchange ","typeDisp":"Index"}]}})
我整天都在寻找一种方法来将这个 returned 字符串转换为 JSON 对象,以便在我的应用程序中使用。
因为它没有以我知道如何用 NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)
解析的 JSON 格式返回,所以我一直在寻找一种创建 JSON 对象的方法从字符串。有没有我可以指出的方向,我只是错过了?
试试这个:
if let returnedData = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSString? {
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
if let jsonObject: AnyObject = NSJSONSerialization.JSONObjectWithData(dataString, options: .allZeros, error: nil) {
if let resultSet = resultSet[yourDictionaryObject objectForKey:@"YAHOO.Finance.SymbolSuggest.ssCallback"]
//This should return a array of dictionary
}
}