Объединить дублирующиеся значения с одним массивом при разборе json в iOS - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу проанализировать json и сохранить его в локальном массиве, чтобы я мог отображать данные как Excell в моем приложении. JSON является избыточным. Я загрузил изображение для вашего любезного рассмотрения. Вот мой JSON

    [
  {
    "date": "2018-10-21",
    "Status": "Confirmed",
    "Orders": "1"
  },
  {
    "date": "2018-10-22",
    "Status": "Confirmed",
    "Orders": "1"
  },
  {
    "date": "2018-10-22",
    "Status": "Delivered",
    "Orders": "2"
  },
  {
    "date": "2018-10-22",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-10-22",
    "Status": "Rejected",
    "Orders": "2"
  },
  {
    "date": "2018-10-22",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-10-22",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-10-23",
    "Status": "Cancelled",
    "Orders": "2"
  },
  {
    "date": "2018-10-23",
    "Status": "Processing",
    "Orders": "3"
  },
  {
    "date": "2018-10-24",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-10-25",
    "Status": "Delivered",
    "Orders": "1"
  },
  {
    "date": "2018-10-25",
    "Status": "Processing",
    "Orders": "2"
  },
  {
    "date": "2018-10-26",
    "Status": "Delivered",
    "Orders": "1"
  },
  {
    "date": "2018-10-27",
    "Status": "Processing",
    "Orders": "3"
  },
  {
    "date": "2018-10-27",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-10-27",
    "Status": "Processing",
    "Orders": "2"
  },
  {
    "date": "2018-10-28",
    "Status": "Confirmed",
    "Orders": "1"
  },
  {
    "date": "2018-10-28",
    "Status": "Delivered",
    "Orders": "3"
  },
  {
    "date": "2018-10-29",
    "Status": "Delivered",
    "Orders": "5"
  },
  {
    "date": "2018-10-29",
    "Status": "Processing",
    "Orders": "2"
  },
  {
    "date": "2018-10-29",
    "Status": "Rejected",
    "Orders": "1"
  },
  {
    "date": "2018-10-29",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-10-31",
    "Status": "Confirmed",
    "Orders": "2"
  },
  {
    "date": "2018-10-31",
    "Status": "Processing",
    "Orders": "2"
  },
  {
    "date": "2018-10-31",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-10-31",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-11-01",
    "Status": "Confirmed",
    "Orders": "1"
  },
  {
    "date": "2018-11-01",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-11-01",
    "Status": "Processing",
    "Orders": "2"
  },
  {
    "date": "2018-11-01",
    "Status": "Processing",
    "Orders": "1"
  },
  {
    "date": "2018-11-02",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-11-03",
    "Status": "Processing",
    "Orders": "4"
  },
  {
    "date": "2018-11-03",
    "Status": "Cancelled",
    "Orders": "1"
  },
  {
    "date": "2018-11-04",
    "Status": "Processing",
    "Orders": "1"
  }
]

После анализа я хочу сохранить данные одной и той же даты вместе. Например, для конкретной даты, такой как 2018-10-20, я хотел бы сохранить всю информацию в классе сущностей, чтобы я мог заполнить информацию в таблице.

enter image description here

Мой код анализа указан ниже

    -(void)parseLocalJson
{
    resultsArray=[[NSMutableArray alloc]init];
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Results" ofType:@"json"];
    NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
    NSArray *jsonArr = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:nil];

    for(int r =0;r<[jsonArr count];)
    {
        id val=[jsonArr objectAtIndex:r];
        Results* prevResult;
        //Results* aResult;
        Results* aResult=[[Results alloc]init];
        aResult.date=[val valueForKey:@"date"];


         if(![aResult.date isEqualToString:prevResult.date])
        {
             //Results* aResult=[[Results alloc]init];
            NSString* status=[val valueForKey:@"Status"];
            NSString* orders=[val valueForKey:@"Orders"];
            if([status isEqualToString:@"Confirmed"])
            {
                aResult.orderStatus_Confirmed=orders;
            }
            else if([status isEqualToString:@"Delivered"])
            {
                aResult.orderStatus_Delivered=orders;
            }
            else if([status isEqualToString:@"Cancelled"])
            {
                aResult.orderStatus_Cancelled=orders;

            }
            else if([status isEqualToString:@"Rejected"])
            {
                aResult.orderStatus_Rejected=orders;
            }
            else if([status isEqualToString:@"Pending"])
            {
                aResult.orderStatus_Pending=orders;
            }
            [resultsArray addObject:aResult];
            r++;
        }
        else
        {
            r--;
            NSString* status=[val valueForKey:@"Status"];
            NSString* orders=[val valueForKey:@"Orders"];
            if([status isEqualToString:@"Confirmed"])
            {
                prevResult.orderStatus_Confirmed=orders;
            }
            else if([status isEqualToString:@"Delivered"])
            {
                prevResult.orderStatus_Delivered=orders;
            }
            else if([status isEqualToString:@"Cancelled"])
            {
                prevResult.orderStatus_Cancelled=orders;

            }
            else if([status isEqualToString:@"Rejected"])
            {
                prevResult.orderStatus_Rejected=orders;
            }
            else if([status isEqualToString:@"Pending"])
            {
                prevResult.orderStatus_Pending=orders;
            }

            //[resultsArray addObject:prevResult];

        }
        prevResult=aResult;




    }





    // Parse the string into JSON
    //NSDictionary *json = [myJSON JSONValue];
}

Я хочу сохранить данные в своем массиве в соответствии с предоставленным изображением. Пожалуйста, помогите мне. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...