@Sunil Targe - это версия Swift3. Надеюсь это поможет. (Адаптировано из ответа Киприана Рарау)
Преобразование данных в JSON
func dataToJSON(data: Data) -> Any? {
do {
return try JSONSerialization.jsonObject(with: data, options: .mutableContainers)
} catch let myJSONError {
print(myJSONError)
}
return nil
}
Преобразование из JSON в данные
func jsonToData(json: Any) -> Data? {
do {
return try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted)
} catch let myJSONError {
print(myJSONError)
}
return nil;
}
Если Вы не имеете никакого контроля над внешней зависимостью, и Вы все еще хотите позволить перехватчики без beans.xml, который Вы можете написать CDI, добавочный номер:
package my.package;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterTypeDiscovery;
import javax.enterprise.inject.spi.Extension;
public class MyCdiExtension implements Extension {
public void observeAfterTypeDiscovery(@Observes AfterTypeDiscovery afterTypeDiscovery) {
afterTypeDiscovery.getInterceptors().add(SomeExternalInterceptor.class);
}
}
Добавляет файл resources/META-INF/services/javax.enterprise.inject.spi.Extension
с содержанием:
my.package.MyCdiExtension