Get Distinct record from JSON result using C# in ASP.Net

Last Reply on May 10, 2018 07:40 PM By narasiman

Posted on May 02, 2018 11:54 PM

from the below json i want to get distinct record only for that how to do

int columnindex = 43;
foreach (DataRow row  in dtFarmerFarmReports.Rows) {
    var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(row["farm_detailsdata"].ToString());
    string str = string.Empty;
 
    foreach (var data in dict)
    {
        columnindex++;
        worksheet.Cells[2, columnindex].Value = data.Key;
    }
}
 
when  i run the above code i did  get all the rows.
 
"Produto preferido para produção":"Algodão","Plantou algodão no ano passado?"
"Produto preferido para produção":"Feijão","Plantou algodão no ano passado?":"Sim"
"Produto preferido para produção":"Feijão Buer","Plantou algodão no ano passado?":"Não"
"Produto preferido para produção":"Gergelim","Plantou algodão no ano passado?":"Sim"
"Produto preferido para produção":"Feijão Buer","Plantou algodão no ano passado?":"Não"
"Área de Milho":"2","Área de Mandioca":"2"
"Área de Milho":"2","Área de Mandioca":"2"
"Área de Milho":"2","Área de Mandioca":"2"
"Área de Milho":"2","Área de Mandioca":"2"

 

Posted on May 08, 2018 06:33 AM

Before looping through the DataTable rows get the distinct record and then loopthrough the rows to get the json data.

DataView view = new DataView(dtFarmerFarmReports);
DataTable distinctValues = view.ToTable(true, "farm_detailsdata");

foreach (DataRow row in distinctValues.Rows)
{
    var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(row["farm_detailsdata"].ToString());
    string str = string.Empty;

    foreach (var data in dict)
    {

    }
}

 


Posted on May 10, 2018 07:40 PM

 i find the answers to remove the duplictes.

int columnindex = 43;
foreach (DataRow row in dtFarmerFarmReports.Rows)
{
    var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(row["farm_detailsdata"].ToString());
    string str = string.Empty;
    List<string> lst = new List<string>();
    lst.AddRange(dict.Keys);
    var distinctList = lst.Distinct().ToList();

    foreach (var data in distinctList)
    {
        columnindex++;
        worksheet.Cells[2, columnindex].Value = data;
    }
}