- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个我不知道如何解决的问题。
当我尝试将此 JSON 映射到 User 对象时,它失败了:
SwiftyJSON 在“2.3.3”
JSON:
{
"results":[
{
"gender":"male",
"name":{
"title":"mr",
"first":"donald",
"last":"boor"
},
"location":{
"street":"1781 vredenburg",
"city":"het bildt",
"state":"noord-brabant",
"postcode":30431
},
"email":"donald.boor@example.com",
"login":{
"username":"greenpeacock269",
"password":"lambda",
"salt":"2uqekB9c",
"md5":"4fd97ba849fc6d1abb23134cd554dba8",
"sha1":"d5adf8eadc9c8b33422ccbc8087333e6dec6f83e",
"sha256":"2e4b3344d72dc6937fee422149146cb83b6397530e6afdb12daad165abe2b3d9"
},
"dob":"1986-12-25 21:32:21",
"registered":"2016-02-25 06:58:50",
"phone":"(365)-252-9092",
"cell":"(962)-625-3483",
"id":{
"name":"BSN",
"value":"59041461"
},
"picture":{
"large":"https://randomuser.me/api/portraits/men/15.jpg",
"medium":"https://randomuser.me/api/portraits/med/men/15.jpg",
"thumbnail":"https://randomuser.me/api/portraits/thumb/men/15.jpg"
},
"nat":"NL"
}
],
"info":{
"seed":"806e92dbf96026d0",
"results":1,
"page":1,
"version":"1.1"
}
}
我想映射到我的用户类别:
import Foundation
import ObjectMapper
class User: NSObject, Mappable {
var gender: String?
var title: String?
var first: String?
var last: String?
required init?(_ map: Map) {
}
// Mappable
func mapping(map: Map) {
gender <- map["gender"]
title <- map["name.title"]
first <- map["name.first"]
last <- map["name.last"]
}
}
let user = Mapper<User>().mapArray(jsonData) //Doesn't work getting nil
let userList :Array<User> = Mapper<User>().mapArray(jsonData)! //fatal error: unexpectedly found nil while unwrapping an Optional value
响应代码:
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if (error == nil) {
do {
//let jsonResult: NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
let jsonResult = JSON(data: data!)
let dict = jsonResult["results"].dictionaryValue
let userList :Array<User> = Mapper<User>().mapArray(dict)!
print(userList)
} catch {}
}
最佳答案
由于您没有提供接收响应的代码,因此我已使用测试用例进行测试,并将响应放入 test.json
文件中。
if let path = NSBundle.mainBundle().pathForResource("test", ofType: "json") {
do {
let jsonData = try NSData(contentsOfFile: path, options: NSDataReadingOptions.DataReadingMappedIfSafe)
do {
let jsonResult: NSDictionary = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
let userList :Array<TestUser> = Mapper<TestUser>().mapArray(jsonResult.objectForKey("results"))!
print(userList)
} catch {}
} catch {}
}
编辑:
我已经实现了 SwiftyJSON
语法,请尝试以下代码行:
let userList :Array<TestUser> = Mapper<TestUser>().mapArray(jsonResult["results"].arrayObject)!
print(userList)
将模型类更改为:
class TestUser: NSObject, Mappable {
var gender: String?
var title: String?
var first: String?
var last: String?
required init?(_ map: Map) {
}
// Mappable
func mapping(map: Map) {
gender <- map["gender"]
title <- map["name.title"]
first <- map["name.first"]
last <- map["name.last"]
}
}
关于ios - ObjectMapper 因根元素而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290404/
这是我的设置: 带有自定义 MessageConverter 的 ObjectMapper 的 RestTemplate,它具有一些反序列化功能和问题处理程序 (Jackson Fasterxml 2
我们有一个基于 Spring 的应用程序,并且我们为 Jackson ObjectMapper 类定义了一个单例 bean。 @Bean(name = "jacksonObjectMapper") p
当依赖项中的 jar 中定义了另一个对象映射器时,如何使我的对象映射器工作? 我正在尝试使用 Swagger与 Jersey 2在 Jetty 下运行。问题是,一旦我将 Swagger JAX-RX
我刚刚更新到 Xcode 10.1 Swift 版本 4.2.1 我有几个构建错误: Invalid redeclaration of ' 3.3' $ pod 'ObjectMapper', '3.
您好,我是 IOS 开发的新手。我正在创建一个小应用程序。我正在尝试导入 ObjectMapper 但它没有找到任何模块。我已经安装了 pod。我的 pod 文件看起来像: target 'Sam
ObjectMapper 忽略字段大小写 核心代码: ObjectMapper mapper = new ObjectMapper(); mapper.configure(Deser
我加载一个资源文件json与文本格式 { "sources": [{ "prop1": "1", "prop2": "2" },
我有以下类(class): public class Car{ private String id; private String name; public Car() { } public Car(
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我正在将印地语存储在数据库中。在我的 fetch 方法中,我使用 objectMapper 它将印地语字体转换为特殊字符。没有objectmapper它工作正常。 @CrossOrigin @
我正在尝试使用 Jackson ObjectMappper 将我的 Java POJO 转换为 Map。但是,在转换时,日期会更改为字符串。 这是我的 POJO: public class Sampl
我将日期传递为 "scoreTimestamp": "2015-04-15T10:00:00.000Z",并希望将此 json 作为字符串保存在数据库中,因此使用方法 ObjectMapper ob
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我遇到了一个我不知道如何解决的问题。 当我尝试将此 JSON 映射到 User 对象时,它失败了: SwiftyJSON 在“2.3.3” JSON: { "results":[
我有一个自定义的 ObjectMapper 类。我想根据数据将元素映射到不同的对象类型。我已经实现了如下逻辑。但它没有给我值,只是 null。 class FeedObject : Object, M
我正在从服务器解析 json。我在 json 中获得了 4 个值,因此我创建了模型类 class PriceData: Mappable { var buy: Double? var sell: Do
我有这个映射器: import Foundation import ObjectMapper class Article: Mappable { var id: Int! var na
我有下面的一段代码,可以将带注释的 Java 对象转换为 Json 字符串。 try { String jsonString = mapper.writeValueAsStr
这个问题在这里已经有了答案: Jackson - Required property? (4 个答案) 关闭 7 年前。 假设我有这样的 json,我想将它反序列化为一个名为 SubscriberP
我有一个 JSON,我将其解析为结果对象列表。此对象包含 5 个字符串字段,称为 photo1、photo2 等。(基于 JSON)是否可以将它们直接读入列表字段? JSON 喜欢: { "E
我是一名优秀的程序员,十分优秀!