alibaba / alibaba/HandyJSON

泛型解析失败 swift 5.0版本

Open
#316 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
4.3k
Forks
677
PR merge metrics
No merged PRs in 30d

Description

```
// 假设这是服务端返回的统一定义的response格式
class BaseResponse: HandyJSON {
var code: Int? // 服务端返回码
var data: T? // 具体的data的格式和业务相关,故用泛型定义
public required init() {}
}
// 假设这是某一个业务具体的数据格式定义
struct SampleData: HandyJSON {
var id: Int?
}
let sample = SampleData(id: 2)
let resp = BaseResponse()
resp.code = 200
resp.data = sample
let jsonString = resp.toJSONString()! // 从对象实例转换到JSON字符串
print(jsonString) // ### **控制台打印print: {"code":200,"data":{"id":2}}**

if let mappedObject = JSONDeserializer>.deserializeFrom(json: jsonString) { // 从字符串转换为对象实例
print(mappedObject.toJSONString()) // 打印 Optional("{\"code\":200}")
}
```

===============
data 字段无法转换成model 有遇到过这样问题的吗 ?
JSONDeserializer>.deserializeFrom(json: jsonString)
这种方式无法成功转换
JSONDeserializer<#SomeModel#>.deserializeFrom(json: jsonString)
如果SomeModel为具体返回json对应的model 是可以解析的
是HandyJson不支持带泛型的class进行转换了么???

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at JSONDeserializer>.deserializeFrom(json:) and compare it with JSONDeserializer.deserializeFrom(json:), using the provided JSON string and model definitions. Done means the generic response preserves data as SampleData and serializes back with both code and data.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
api
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.