Ошибка при разборе JSON в RubyMotion

#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