Это означает, что мне нужно преобразовать новые строки в "\n ". Также результат должен пройти проверку JSON lint. https://jsonlint.com.
Например, предположим, что у меня есть следующий быстрый код:
Код: Выделить всё
import UIKit
import TableMVVM
class SubMenuChoice: NibView, HasViewModel {
@IBOutlet var titleLabel: UILabel!
@IBOutlet var detailsLabel: UILabel!
@IBOutlet var viewToGradient: BottomLeftToTopRightGradient!
var viewModel: ViewModel = .fallBack {
didSet {
self.titleLabel.text = viewModel.titleText
self.detailsLabel.text = viewModel.detailText
self.viewToGradient.layer.cornerRadius = 16
self.viewToGradient.clipsToBounds = true
self.viewToGradient.layer.borderColor = UIColor.white.cgColor
self.viewToGradient.layer.borderWidth = 0.2
}
}
}
Код: Выделить всё
{"MyJSON" : "import UIKit\nimport TableMVVM\n\nclass SubMenuChoice: NibView, HasViewModel {\n\n @IBOutlet var titleLabel: UILabel!\n @IBOutlet var detailsLabel: UILabel!\n @IBOutlet var viewToGradient: BottomLeftToTopRightGradient!\n\n var viewModel: ViewModel = .fallBack {\n didSet {\n self.titleLabel.text = viewModel.titleText\n self.detailsLabel.text = viewModel.detailText\n self.viewToGradient.layer.cornerRadius = 16\n self.viewToGradient.clipsToBounds = true\n self.viewToGradient.layer.borderColor = UIColor.white.cgColor\n self.viewToGradient.layer.borderWidth = 0.2\n }\n }\n}\n"}

Вот текст, который мне нужно преобразовать в однострочное допустимое строковое значение JSON:
Код: Выделить всё
import UIKit
import TableMVVM
class SubMenuChoice: NibView, HasViewModel {
@IBOutlet var titleLabel: UILabel!
@IBOutlet var detailsLabel: UILabel!
@IBOutlet var viewToGradient: BottomLeftToTopRightGradient!
var viewModel: ViewModel = .fallBack {
didSet {
self.titleLabel.text = viewModel.titleText
self.detailsLabel.text = viewModel.detailText
self.viewToGradient.layer.cornerRadius = 16
self.viewToGradient.clipsToBounds = true
self.viewToGradient.layer.borderColor = UIColor.white.cgColor
self.viewToGradient.layer.borderWidth = 0.2
}
}
}
extension SubMenuChoice {
struct ViewModel: HasFallBack {
let titleText: String
let detailText: String
static var fallBack: Self {
.init(titleText: "-", detailText: "-")
}
}
}
///// Interface builder XML, .xib /////
Inter-Regular
///// Unit tests /////
Import XCTest
class SubMenuChoiceTests: XCTestCase {
}

Подозреваю, что я не первый человек, делающий подобные вещи, поэтому я Я надеюсь, что кто-нибудь знает формулу преобразования XML в действительный json-строка. Пожалуйста, помогите. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/723 ... son-string