2013-02-05 2 views
0

Я использую веб-сервис JSON. Сначала я сохраняю значения на сервере, а затем получаю их. Поля, которые я оставляю пустыми при вставке значений, показывают 0 значений, когда я попадаю в API или URL. И он отображает в массиве, показывая в консоли, но не отображается на ярлыках, кнопках и т. Д. Он убивает с ошибкой [NSDecimalNumber length]. Я хочу знать, что здесь не так, и что возвращают те теги, которые остаются пустыми во время вставок. И как определить, что теги имеют нулевое значение или нулевое значение. И как с ними бороться.Проблема с нулевым значением JSON

Здесь я размещение с JSON

{ 
    "messageshow":[ 
     { 
     "message_id":"502", 
     "message":"http://flut.psites.info/api/messages/voice/1360100571.caff", 
     "message_pic":"", 
     "uid":"44", 
     "created":"14 second ago", 
     "username":"pari", 
     "first_name":"pp", 
     "last_name":"pp", 
     "profile_pic":"http://flut.p-sites.info/api/uploads/13599968121.jpg", 
     "tag_user":{ 
      "tags":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "boos_list":{ 
      "booslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "aplouds_list":{ 
      "aploudslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "total_comments":0, 
     "total_boos":0, 
     "total_applouds":0 
     }, 
     { 
     "message_id":"501", 
     "message":"http://flut.psites.info/api/messages/voice/1360100045.caff", 
     "message_pic":"", 
     "uid":"44", 
     "created":"9 minutes ago", 
     "username":"pari", 
     "first_name":"pp", 
     "last_name":"pp", 
     "profile_pic":"http://flut.psites.info/api/uploads/13599968121.jpg", 
     "tag_user":{ 
      "tags":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "boos_list":{ 
      "booslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "aplouds_list":{ 
      "aploudslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "total_comments":0, 
     "total_boos":0, 
     "total_applouds":0 
     }, 
     { 
     "message_id":"500", 
     "message":"http://flut.p.info/api/messages/voice/1360099970.caff", 
     "message_pic":"", 
     "uid":"44", 
     "created":"10 minutes ago", 
     "username":"pari", 
     "first_name":"pp", 
     "last_name":"pp", 
     "profile_pic":"http://flutpsites.info/api/uploads/13599968121.jpg", 
     "tag_user":{ 
      "tags":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "boos_list":{ 
      "booslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "aplouds_list":{ 
      "aploudslist":[ 
       { 
        "message":"false" 
       } 
      ] 
     }, 
     "total_comments":0, 
     "total_boos":0, 
     "total_applouds":0 
     } 
    ] 
} 
+0

Я думаю, что его bcoz, значение которого вы оставляете пустым, является int, поэтому его по умолчанию 0. – Dilip

ответ

0

Первый: Что вы используете для анализа принятых данных в формате JSON? NSJSONSerialization, JSONKit, ...?

Во-вторых: Я думаю, что вы пытаетесь позвонить -length по значению из разобранных данных JSON. Но поскольку это значение пусто (0), он получает синтаксический анализ в NSNumber вместо строки. NSNumber не реализует метод -length, и ваше приложение падает.

Вы должны вернуть нулевую или пустую строку в JSON для пустых строковых значений, а не только 0.

P.S .: Не использовать NSDecimalNumber, но NSNumber вместо этого. NSDecimalNumber предназначен для выполнения вычислений, а не для целых чисел.

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