0

I am facing issue with parsing response from server side. I get response in this format 1.) enter image description here For first image my model class is working fine. In this I don't null

2.) enter image description here For second image response my Model class is not working it's giving nil after parsing.In this I get null in array

My Model class for my api response is this

class GetTodayMyKpiResponse: Mappable{

var status: String?
var myKpiMonth: MyKpiMonthResponse?
var myKpiWeek: MyKpiWeekResponse?


required init?(map: Map){

}

func mapping(map: Map) {
    status <- map["status"]
    myKpiMonth <- map["myKpiMonth"]
    myKpiWeek <- map["myKpiWeek"]
}

}

class MyKpiMonthResponse: Mappable{
var myKpiMonthYear: Double?
var myKpiMonthDetailList: [MyKpiMonthDetailResponse]?
var myKpiMonthList: [MyKpiMonthListReponse]?

required init?(map: Map) {

}

func mapping(map: Map) {
    myKpiMonthYear <- map["myKpiMonthYear"]
    myKpiMonthDetailList <- map["myKpiMonthDetail"]
    myKpiMonthList <- map["myKpiMonthList"]
}
}

class MyKpiMonthDetailResponse: Mappable{
var myKpiMonthDetailOutletCode: String?
var myKpiMonthDetailUnitTiers: [String]?
var myKpiMonthDetailTargetUnits: [String]?
var myKpiMonthDetailBonusIncentive: Double?
var myKpiMonthDetailOutletName: String?
var myKpiMonthDetailModelName: [String]?
var myKpiMonthDetailMonth: String?
var myKpiMonthDetailType: Double?

required init?(map: Map) {

}

func mapping(map: Map) {
    myKpiMonthDetailOutletCode <- map["myKpiMonthDetailOutletCode"]
    myKpiMonthDetailUnitTiers <- map["myKpiMonthDetailUnitTiers"]
    myKpiMonthDetailTargetUnits <- map["myKpiMonthDetailTargetUnits"]
    myKpiMonthDetailBonusIncentive <- map["myKpiMonthDetailBonusIncentive"]
    myKpiMonthDetailOutletName <- map["myKpiMonthDetailOutletName"]
    myKpiMonthDetailModelName <- map["myKpiMonthDetailModelName"]
    myKpiMonthDetailMonth <- map["myKpiMonthDetailMonth"]
    myKpiMonthDetailType <- map["myKpiMonthDetailType"]
}
}

class MyKpiMonthListReponse: Mappable {
var myKpiMonthMaxUnit: Double?
var myKpiMonthDate: String?
var myKpiMonthBonusAmount: Double?
var myKpiMonthActivatedUnit: Double?
var myKpiMonthMinUnit: Double?
var myKpiMonthCurrentUnit: Double?
var myKpiMonthBonusStatus: String?
var myKpiMonthOutletName: String?
var myKpiMonthOutletAddress: String?

required init?(map: Map) {

}

func mapping(map: Map) {
    myKpiMonthMaxUnit <- map["myKpiMonthMaxUnit"]
    myKpiMonthDate <- map["myKpiMonthDate"]
    myKpiMonthBonusAmount <- map["myKpiMonthBonusAmount"]
    myKpiMonthActivatedUnit <- map["myKpiMonthActivatedUnit"]
    myKpiMonthMinUnit <- map["myKpiMonthMinUnit"]
    myKpiMonthCurrentUnit <- map["myKpiMonthCurrentUnit"]
    myKpiMonthBonusStatus <- map["myKpiMonthBonusStatus"]
    myKpiMonthOutletName <- map["myKpiMonthOutletName"]
    myKpiMonthOutletAddress <- map["myKpiMonthOutletAddress"]
}
}

class MyKpiWeekResponse: Mappable{
var myKpiWeekDetail: [MyKpiWeekDetailResponse]?
var myKpiWeekList: [MyKpiWeekListResponse]?
var myKpiWeekYear: Double?
var myKpiWeekMonth: Double?

required init?(map: Map) {

}

func mapping(map: Map) {

    myKpiWeekDetail <- map["myKpiWeekDetail"]
    myKpiWeekList <- map["myKpiWeekList"]
    myKpiWeekYear <- map["myKpiWeekYear"]
    myKpiWeekMonth <- map["myKpiWeekMonth"]
}
}

class MyKpiWeekDetailResponse: Mappable{
var myKpiWeekDetailEndDate: String?
var myKpiWeekDetailUnitTiers: [String]?
var myKpiWeekDetailOutletName: String?
var myKpiWeekDetailStartDate: String?
var myKpiWeekDetailType: Double?
var myKpiWeekDetailModelName: [String]?
var myKpiWeekDetailTypeOfReward: String?
var myKpiWeekDetailOutletCode: String?
var myKpiWeekDetailTargetUnits: [String]?

required init?(map: Map) {

}

func mapping(map: Map) {
    myKpiWeekDetailEndDate <- map["myKpiWeekDetailEndDate"]
    myKpiWeekDetailUnitTiers <- map["myKpiWeekDetailUnitTiers"]
    myKpiWeekDetailOutletName <- map["myKpiWeekDetailOutletName"]
    myKpiWeekDetailStartDate <- map["myKpiWeekDetailStartDate"]
    myKpiWeekDetailType <- map["myKpiWeekDetailType"]
    myKpiWeekDetailModelName <- map["myKpiWeekDetailModelName"]
    myKpiWeekDetailTypeOfReward <- map["myKpiWeekDetailTypeOfReward"]
    myKpiWeekDetailOutletCode <- map["myKpiWeekDetailOutletCode"]
    myKpiWeekDetailTargetUnits <- map["myKpiWeekDetailTargetUnits"]
}
}

class MyKpiWeekListResponse: Mappable {
var myKpiWeekBonusStatus: String?
var myKpiWeekEndDate: String?
var myKpiWeekActivatedUnit: Double?
var myKpiWeekStartDate: String?
var myKpiWeekMinUnit: Double?
var myKpiWeekCurrentUnit: Double?
var myKpiWeekOutletName: String?
var myKpiWeekTypeOfReward: String?
var myKpiWeekOutletAddress: String?
var myKpiWeekMaxUnit: Double?

required init?(map: Map) {

}

func mapping(map: Map) {
    myKpiWeekBonusStatus <- map["myKpiWeekBonusStatus"]
    myKpiWeekEndDate <- map["myKpiWeekEndDate"]
    myKpiWeekActivatedUnit <- map["myKpiWeekActivatedUnit"]
    myKpiWeekStartDate <- map["myKpiWeekStartDate"]
    myKpiWeekMinUnit <- map["myKpiWeekMinUnit"]
    myKpiWeekCurrentUnit <- map["myKpiWeekCurrentUnit"]
    myKpiWeekOutletName <- map["myKpiWeekOutletName"]
    myKpiWeekTypeOfReward <- map["myKpiWeekTypeOfReward"]
    myKpiWeekOutletAddress <- map["myKpiWeekOutletAddress"]
    myKpiWeekMaxUnit <- map["myKpiWeekMaxUnit"]
}
}
6
  • Why your value is null in second response? Commented Mar 20, 2018 at 7:35
  • Because they don't have data for next month Commented Mar 20, 2018 at 7:40
  • If there is no data available then send empty array not null. even in myKpiMonthList doesn't contain null array. There is no logic that null value in array at index 2. Commented Mar 20, 2018 at 7:43
  • It's sending null so that we can show second cell blank tableview.Our req. is like if any month data is null then I need to show blank cell for that month. Commented Mar 20, 2018 at 9:04
  • You can send empty string also. or empty array even. Still there is no any logic for the null value. It always crash. Commented Mar 20, 2018 at 9:34

1 Answer 1

1

If there is no data available then send empty array not null. Even in myKpiMonthList doesn't contain null array. There is no logic that null value in array at index 2.

You can send empty string or empty array even. Still there is no any logic for the null value.

Either handle all null value from server side else it always crash.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.