Я очень новый разработчик (это моя первая работа разработчика), создающая приложение Swift / iOS для создания / обработки заказов, и сервер отправляет мне объект ObjectID () в JSON с каждым продуктом, на который я смотрю.После некоторых исследований кажется, что это объект MongoDB.
Джентльмен, кодирующий мои маршруты API, хочет, чтобы я брал этот объект для каждого продукта, который отправляет мне сервер, чтобы я мог отправить его обратно на сервер с любыми заказами, которые включают этот продукт.Он говорит, что это облегчит ему доступ к продукту при обработке новых заказов.
До сих пор у меня не было проблем с расшифровкой JSON, который сервер отправляет мне, потому что он был в таких форматах, как String., Int, Float и т. Д., Или просто другой объект JSON, которому нужна новая структура Codable, полная большего количества того же самого.
Когда дело доходит до создания структуры Codable для ObjectID, я не знаю, чтоключи / типы значений (свойства / типы значений, любую терминологию, которую вы хотите использовать), чтобы сказать, чего ожидать.Или, если это правильный путь.
Это то, что у меня сейчас есть:
import Foundation
struct ProductData: Codable {
let _id : ObjectId
let productId : String
let description : String
let ...
}
Тип ObjectId, показанный выше, является пользовательской структурой Codable, которую у меня нет.еще не построен, потому что я не уверен, как.Я полагаю, это должно выглядеть примерно так:
import Foundation
struct ObjectId : Codable {
let someVariableName : SomeCodableType
let ...
}
Я не знаю, каким будет имя переменной или тип.Я понимаю, что в нем есть метка времени и некоторая другая информация, и я читал о том, что она представлена в виде строки, но у меня возникает ощущение, что если я попробую что-то вроде let _id:String
в моей структуре Codable, она выиграет »Я декодирую / кодирую так, как я себе представляю.
Мне интересно, как создать «тип», который будет правильно ловить / декодировать объект _id, который мне бросают.Если есть способ просто хранить эти данные, не декодируя их, и просто отсылать их обратно, когда мне это понадобится позже, это также будет соответствовать моим целям.
РЕДАКТИРОВАТЬ: После некоторых экспериментов янашел этот необработанный JSON для объекта _id:
"_id":{"$id":"58071f9d3f791f4f4f8b45ff"}
Знаки доллара не допускаются в именах переменных / свойств Swift, поэтому я не уверен, как действовать таким образом, который удовлетворяет как входящим, так и исходящим - IМожно создать пользовательский ключ, вручную инициализировав JSON, чтобы он правильно работал со Swift, но я не уверен, есть ли способ отменить это при кодировании того же объекта обратно в JSON для отправки обратно на сервер.