#ios #json #rubymotion
#iOS #json #rubymotion
Вопрос:
Я пытаюсь разобрать следующий JSON:
"{"name":"Damien","message":["Hi"]}"
Тем не менее, я пробовал собственный синтаксический анализ и Bubblewrap только для получения следующей ошибки:
-[__NSCFString bytes]: unrecognized selector sent to instance 0x98bde40
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString bytes]: unrecognized selector sent to instance 0x98bde40'
Я пытался:
e = Pointer.new(:object)
json_hash = NSJSONSerialization.JSONObjectWithData(json_string, options:0, error: e)
и
json_hash = BW::JSON.parse(json_string)
Оба выдают одну и ту же ошибку. Что я делаю не так?
Ответ №1:
`JSONObjectWithData:параметры: ошибка:’ требуется объект NSData вместо строки. Вы можете преобразовать строку в NSData, используя строку#to_data
json_string = "{"name":"Damien","message":["Hi"]}"
e = Pointer.new(:object)
json_hash = NSJSONSerialization.JSONObjectWithData(json_string.to_data, options:0, error: e)
Комментарии:
1. Это помогло, спасибо. Однако сначала мне пришлось преобразовать мою строку в NSString: например
String(json_string).to_data