我正在使用JSON Web服务。首先,我将值保存在服务器上然后获取相同的值。当我点击API或网址时,我在插入值期间留空的字段显示0值。并且它在数组中显示在控制台中,但没有显示在标签,按钮等上。它正在查找错误[NSDecimalNumber length]
。我想知道这里有什么问题,以及那些在插入过程中留空的标签返回的内容。以及如何检测标记具有零值或空值。以及如何处理它们。
这里我发布了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 :(得分:0)
首先:你用什么来解析收到的JSON数据? NSJSONSerialization
,JSONKit
,...?
第二:我猜你试图从解析的JSON数据中调用-length
的值。但是因为该值为空(0)所以它被解析为NSNumber
而不是字符串。 NSNumber
未实施-length
方法且您的应用崩溃。
您应该在JSON中为空字符串值返回null或空字符串,而不仅仅是0
。
P.S。:不要使用NSDecimalNumber
,而是使用NSNumber
。 NSDecimalNumber
用于执行计算而不是包装整数。