- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试从这样的 HTTP 响应中解析数据:
let dataDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSMutableDictionary
结果我得到了这个非常奇怪的数组:
(lldb) po dataDictionary
▿ 3 elements
▿ [0] : 2 elements
- .0 : message
- .1 : http://abc.abc
▿ [1] : 2 elements
- .0 : xyz
- .1 : 1234
▿ [2] : 2 elements
- .0 : status
- .1 : ok
这是我收到的数据(格式很好,没有换行符):
{
"message": "http://abc.abc",
"xyz": "1234",
"status": "ok"
}
这是编码问题吗?这里发生了什么?
最佳答案
它不是一个数组,它是你的 NSMutableDictionary。
在调试器中打印时看起来像这样:有 3 个条目,每个条目都有一个键和一个值。
在 dataDictionary
上执行 ALT+CLICK 并阅读 Xcode 提示,您将看到类型。
关于ios - NSJSONSerialization.JSONObjectWithData 返回奇怪的数组而不是字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37439427/
我将 Xcode 更新到版本 7 并尝试重用我的旧代码: let downloadTask : NSURLSessionDownloadTask = sharedSession.downloadTas
我不知道如何解决这个问题。 这来自youtube教程,用于构建简单的Weather App。 该教程于2015年3月上载,因此使用Swift的早期版本编写,可以正常运行,而对于当前的Swift 2则无
我正在使用提供 JSON 格式数据的服务(不是我的)。当我尝试使用 JSONObjectWithData:options:error: 解析数据时,如果有变音符号(例如 ö),它会返回 nil。如果没
在我的一个 api 中,我得到以下响应表单服务器(如果将数据转换为字符串) {"success":true,"order_id":102232,"Total":68.6,"delivery_time"
示例代码: NSString *jsonObject = ...; BOOL isValidJSONObject = [NSJSONSerialization isValidJSONObject:js
我正在使用 NSURLSession 委托(delegate)方式发出 http get 请求以从服务器获取 json 数据。我最终将 NSURLSessionDataDelegate 中收到的 NS
func retrieveData(englishWord : String, completionHandler : (success: Bool, data : [String : AnyObje
我正在尝试从这样的 HTTP 响应中解析数据: let dataDictionary = try NSJSONSerialization.JSONObjectWithData(data!, optio
我有一个使用 NSJSONSerialization.JSONObjectWithData 的函数,但是一些内存没有被释放。所以我追踪到泄漏发生的位置并使用以下功能对其进行了测试: private f
以下代码应该将“组”加载到 TableView 中,但是, TableView 是空白的: do { if let jsonDataArray = try NSJSONSerializatio
我已经下载了下面的Json格式的数据。 {"name":"Shropshire Outage","nc_lead":"John Smith","dma":"11/111","username":"vw
这个问题在这里已经有了答案: Swift: Extra argument 'error' in call (3 个答案) 关闭 4 年前。 let data = json.data(using: S
我从服务器收到以下 JSON 响应: { "userId":"123456789", "displayName":"display name" } 当我使用 NSJSONSerializa
[ { "_id": "557f27522afb79ce0112e6ab", "endereco": { "cep": "asdasd"
在我的代码中,我下载了以JSON编码的UTF8数据,这是与NSJSONSerialization一起使用的理想选择,但是当我获得解析的对象时,它充满了编码问题,例如: “Jo \ U00e3o e M
我是 iOS 新手,开发速度很快。我最近将 alamofire lib 迁移到 V3.0,这产生了代码错误。我设法解决了所有问题。然而还有最后一个问题。我有一个名为 Webservices 的类,用于
我从使用 [String : AnyObject] 字典转向使用 [String : Any],希望能够在字典值中利用原生 Swift 值类型(例如 String),而不是旧的基础值类型(例如 NSS
我有一个通过 http 与服务器通信的 swift 应用程序, 我从这个服务器得到的答案可能是json,也可能不是。我需要检查它们是什么,以便将答案打印为 Dictionary 或 Array,以避免
这个问题在这里已经有了答案: Correct handling of NSJSONSerialization (try catch) in Swift (2.0)? (3 个答案) 关闭 6 年前。
我的简单 RubyMotion 代码: data = DataParser.parse(url) error_ptr = Pointer.new(:object) json = NSJSONSeria
我是一名优秀的程序员,十分优秀!