From 22c315d631b84700b55f6327ffab5d3da890aa2a Mon Sep 17 00:00:00 2001 From: Toxblh Date: Mon, 23 Apr 2018 13:08:55 +0100 Subject: [PATCH] Parse JSON with comments. --- MTMR/ItemsParsing.swift | 4 +-- MTMR/SupportHelpers.swift | 67 ++------------------------------------- 2 files changed, 3 insertions(+), 68 deletions(-) diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift index 2955df4..b564cd3 100644 --- a/MTMR/ItemsParsing.swift +++ b/MTMR/ItemsParsing.swift @@ -3,9 +3,7 @@ import AppKit extension Data { func barItemDefinitions() -> [BarItemDefinition]? { -// TODO: Need improve a speed, very low loading JSON with comments ~20sec -// return try? JSONDecoder().decode([BarItemDefinition].self, from: self.utf8string!.stripComments().data(using: .utf8)! - return try? JSONDecoder().decode([BarItemDefinition].self, from: self) + return try? JSONDecoder().decode([BarItemDefinition].self, from: self.utf8string!.stripComments().data(using: .utf8)!) } } diff --git a/MTMR/SupportHelpers.swift b/MTMR/SupportHelpers.swift index 2425183..89ff230 100644 --- a/MTMR/SupportHelpers.swift +++ b/MTMR/SupportHelpers.swift @@ -12,73 +12,10 @@ extension String { func trim() -> String { return self.trimmingCharacters(in: NSCharacterSet.whitespaces) } - - func substring(from: Int, to: Int) -> String { - let start = index(startIndex, offsetBy: from) - let end = index(start, offsetBy: to - from) - return String(self[start ..< end]) - } - - func substring(range: NSRange) -> String { - return substring(from: range.lowerBound, to: range.upperBound) - } - - func indexDistance(of character: Character) -> Int? { - guard let index = index(of: character) else { return nil } - return distance(from: startIndex, to: index) - } func stripComments() -> String { - let str = self - let singleComment = 1; - let multiComment = 2; - var insideString = false - var insideComment = 0 - var offset = 0 - var ret = "" - - for var i in 0..