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

Last Reply one year ago By narasiman

Posted one year ago

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 one year ago

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 one year ago

 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;
    }
}