2016-02-02 56 views
0

我在我的應用程序中使用JSONModel。是否可以使用JSONValueTransformer準備將nil/null NSString轉換爲空字符串(@「」)的類別。到目前爲止,當json響應中的屬性爲null時,我在對象中的屬性變爲@「」。JsonModel NSString將null轉換爲空字符串

因爲整個API不是很好(它是外部的)我想避免在每個對象中重寫initWithDictionary,併爲每個具有NSString屬性的JSONModel類使用ValueTransformer,並將它映射到正確的字符串或空字符串,如果nil/null 。

+0

而不是將API的響應從'NSNull's轉換爲空'@「」'爲什麼不在你的應用中處理'nil'的情況?在Obj-C中使用'nil'並不是什麼新東西在我看來,當string屬性沒有值時返回'NSNull'的API是正確的。 – Aaron

+0

首先,我試圖從ValueTransformer方面做它作爲一個教育問題 - 檢查這種方法的可能性。 在應用程序中處理它將需要檢查每個單獨標籤中的[NSString isNotNullOrEmpty]我是應用程序中的數據來自api的設置,並且相信我這個應用程序真的很大。 所以問題是:上面的問題可能或者你知道更好的方法來處理它在整個應用程序沒有處理如此多的if()情況? –

+0

是的,當然可以在'NSDictionary'或'ValueTransformer'上放置一個過濾掉'NSNull'的類別,並用'@「」'替換它們。 – Aaron

回答

0

得到迴應後,運行下面的循環與您的響應字典和它的關鍵。

for (id dictionary in [[responseDictionary valueForKey:@"responseKey"] allKeys]) 
    { 
      ([[responseDictionary valueForKey:@"responseKey"] valueForKey:dictionary] == [NSNull null]) ? [[responseDictionary valueForKey:@"responseKey"] setValue:@"" forKey:dictionary] :[[responseDictionary valueForKey:@"responseKey"] setValue:[[responseDictionary valueForKey:@"responseKey"] valueForKey:dictionary] forKey:dictionary]; 
    } 
相關問題