Используя NSJSONSerialization в RubyMotion
Я использую RubyMotion и пытаюсь сериализовать объект в JSON. Я не получаю сообщение об ошибке, но это приводит к сбою приложения.
class Foo
attr_accessor :name
end
e = Pointer.new(:object)
testItem = Foo.new
testItem.name = "test"
testJson = NSJSONSerialization.dataWithJSONObject(testItem, options:0, error: e)
Кто-нибудь может увидеть, правильно ли я использую этот класс? (или знаю альтернативу)
1 ответ
Решение
В вашем звонке нет ничего плохого. Проблема с вашими данными. Объект верхнего уровня в вашем testItem
должен быть NSArray
или NSDictionary
,
Вы можете использовать массивы и хэши RubyMotion, так как Array < NSMutableArray < NSArray
а также Hash < NSMutableDictionary < NSDictionary
,
Попробуйте эти примеры testItems со своим вызовом:
testItem = ["test"]
testItem = {"names" => ["Fred", "Joe", "Mike"], "ages" => [17, 63, 28]}
Из NSJSONSerialization.h:
/* A class for converting JSON to Foundation objects and converting Foundation objects to JSON. An object that may be converted to JSON must have the following properties: - Top level object is an NSArray or NSDictionary - All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull - All dictionary keys are NSStrings - NSNumbers are not NaN or infinity */