2016-01-14 1 views
8

Ниже приведен мой пользовательский класс. Мой вопрос заключается в том, как преобразовать объект этого класса в строку json с помощью SwiftyJson?Может ли SwiftyJson преобразовывать пользовательский класс swift в строку json?

class Equipment{ 

    var UniqueItemId:String? = "" 
    var ItemNo:String? = "" 
    var EquipmentType:String? = "" 
    var EquipmentDescription:String? = "" 
    var Length:String? = "" 
    var Wll:String? = "" 
    var EquipmentLocation:String? = "" 
    var EquipmentManufacture:String? = "" 
    var SerialNo:String? = "" 
    var Condition:String? = "" 
    var Remarks:String? = "" 
    var InspectionDate:String? = "" 
    var Inspector:String? = "" 

} 

Например, так:

var jsonString = JSON(equipmentObject); 
+6

Вы вопрос misframed: SwiftlyJson это библиотека, которая читает * * JSON. Он не производит * JSON. –

+0

, если вы ищете функциональность, такую ​​как GSON для java, я не думаю, что вы можете сделать это в быстром – Fonix

+0

@ Gwendal Roué: добро. Я был полностью потерян. Большое вам спасибо за хедз-ап, есть ли еще какая-то альтернатива в этом случае? –

ответ

8

UPDATE

OP теперь доволен EVReflection. Поэтому я предполагаю, что в этот момент это лучший выбор.

оригинальный ответ

Поскольку Swift возможностей отражения еще не такие богатые не окончательное решение теперь вроде google-gson для Java.

Библиотеки, такие как SwiftJSON и Swift ObjectMapper, просто замаскированы NSJSONSerialization и требуют, чтобы вы определяли отображения из полей json в свойства объекта.

Но все меняется, и вы можете попробовать JsonSerializerSwift. Я еще не использовал его, но он использует Swift и, похоже, работает нормально.

Также зарегистрируйтесь Swift Mirrors and JSON by Chris Eidhof артикул. В нем объясняется, как работает JSON-сериализация с использованием возможностей отражения.

+0

Большое спасибо. Это объясняет почти все варианты, которые я здесь. Я попытаюсь использовать JsonSerializerSwift. –

+1

Похоже, у JsonSerializerSwift есть некоторые проблемы с преобразованием сложных объектов, содержащих вложенные объекты в них. Лучшей альтернативой, которую я придумал, является «EVReflection» (https://github.com/evermeer/EVReflection). Можно также преобразовать объекты object-> json и Json->. Это работает как шарм. –

+0

Thx! Я добавил ссылку на мой ответ. – mixel

2

Может быть, это воля помогает: https://github.com/PonyCui/PPJSONSerialization

используется Serialize сериализовать классы PPJSONSerialization для JSON строки или JSON данных, это идеальный способ для доставки данных на сервер.

1

В Swift 4 теперь есть фреймворк Codable, который испечен. Из моих исследований это лучший вариант для тех, кто может перейти на последнюю версию языка.

Если имена свойств идентичны, это всего лишь несколько строк, чтобы вызвать json-декодер, и если они разные, вам просто нужно написать небольшой оператор switch для их сопоставления.

Я уверен, что в ближайшие месяцы появится библиотека, чтобы позаботиться о стандартных ситуациях картографирования, но кроме этого все выглядит довольно неплохо из коробки.

проверить его здесь: http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/

1

От Swift4 мы можем использовать JSONEncoder сам для преобразования модели объекта в Json String.

Для этого нам просто нужно расширить объект с помощью Codable, если стандартные клавиши json являются стандартными.

Ссылка:

 Смежные вопросы

  • Нет связанных вопросов^_^