1

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

该操作需要一段时间,所以我决定监控我正在采取的步骤,并意识到解析 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 之间有提到的延迟。关于如何优化这个的任何想法?

先感谢您。

4

2 回答 2

0

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

于 2018-07-02T09:56:33.373 回答
0

尝试使用 SwiftyJSON 进行解析,而不是它是快速的一个简单的检查Hacking with swift

您需要检查的是项目 7

于 2018-06-29T13:25:24.747 回答