取决于iOS设备,使用EVReflection进行的JSON解析速度非常慢

时间:2018-06-28 15:35:53

标签: json swift parsing evo

正在获取一个包含对象数组的json 对象。我愿意使用lib EVReflection解析此json

该操作需要一段时间,所以我决定监视我正在执行的步骤,并意识到解析json最多可能需要20 秒,具体取决于设备。

使用 iPhone SE / iOS 11.4 大约需要 4秒
使用 iPhone 5 / iOS 10.3 大约需要 20秒

我想知道这种变化是否正常,仅取决于设备/操作系统。

我应该使用另一个库还是可以做些什么来加快操作速度?

这是我正在使用的代码:

func getParkings(update: Bool) -> Observable<[ParkingEvo]> {
        if let x = parkings, !update {
            return Observable.just(x)
        } else {
            print("STEP 1: Calling API for parkings \(NSDate())")
            return RxAlamofire.string(.get, PARKINGS_URL, parameters: getParameters(), headers: nil)
                .map { self.parseParkings(json: $0) }
                .do(onNext: { self.storeParkings($0) })
        }
    }

private func parseParkings(json: String) -> [ParkingEvo]{
        print("STEP 2: Proceed to parse json \(NSDate())")
        let parkingsDTO = ParkingsDTO(json: json)
        print("STEP 3: ParkingsDTO created \(NSDate())")

        return parkingsDTO.items
    }

在STEP2和STEP3之间存在上述延迟。关于如何优化它的任何想法?

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试使用SwiftyJSON进行解析,这是一项快速的简单检查Hacking with swift

这是您需要检查的项目7

答案 1 :(得分:0)

出于记录目的,我最终使用ObjectMapper而不是EVReflection,并节省了80%的解析时间。