0

Asp.net c#. This is my json string that i am getting from external web address, i want to store it in a list and then display it using gridview. it is giving an error i-e.

Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[AMS_WEB_Form.Employee]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.

To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.

Path 'employees', line 1, position 13.

plz help,

class that i am using,..

public class Employee
{
    public int employee_id { get; set; }
    public string employee_name { get; set; }
}


public class RootObject
{
    public List<Employee> employees { get; set; }
}

This is what i am doing....and calling this task in PageLoads event of view.

async Task RunAsyncGetDataFromSource()
{
  using( var client = new HttpClient() )
  {               
     //HTTP get
     HttpResponseMessage response = await client.GetAsync("http://192.168.88.598:6598/employees");
     response.EnsureSuccessStatusCode();

     if( response.IsSuccessStatusCode )
     {
       var jsonString =  response.Content.ReadAsStringAsync().Result;
       var data = JsonConvert.DeserializeObject<List<Employee>>(jsonString);

       GridExternalUsersData.DataSource = data;
       GridExternalUsersData.DataBind();

       Response.Write("<script>alert('Data loaded successfully');</script>");
    }
  }           
}

My JSON Output from WebAPI is in this format.

"{\"employees\":[{\"employee_id\":1,\"employee_name\":\"Dalton Schimmel\"},{\"employee_id\":2,\"employee_name\":\"Caitlyn O'Kon\"},{\"employee_id\":3,\"employee_name\":\"Timmothy Bartell\"},{\"employee_id\":4,\"employee_name\":\"Mauricio Lind\"},{\"employee_id\":5,\"employee_name\":\"Mr. Imani Pfannerstill\"},{\"employee_id\":6,\"employee_name\":\"Mrs. Reagan Wehner\"},{\"employee_id\":7,\"employee_name\":\"Citlalli McCullough II\"},{\"employee_id\":8,\"employee_name\":\"Mrs. Fabian Leffler\"},{\"employee_id\":9,\"employee_name\":\"Blanca Langosh\"},{\"employee_id\":10,\"employee_name\":\"Kennith Watsica\"},{\"employee_id\":11,\"employee_name\":\"Fermin Leannon\"},{\"employee_id\":12,\"employee_name\":\"Estelle Windler\"},{\"employee_id\":13,\"employee_name\":\"Kurt Skiles\"},{\"employee_id\":14,\"employee_name\":\"Sienna Medhurst\"},{\"employee_id\":15,\"employee_name\":\"Orlando Bednar DVM\"},{\"employee_id\":16,\"employee_name\":\"Harley Leffler\"},{\"employee_id\":17,\"employee_name\":\"Nathaniel Crooks\"},{\"employee_id\":18,\"employee_name\":\"Hortense Jerde IV\"},{\"employee_id\":19,\"employee_name\":\"Coty Mills\"},{\"employee_id\":20,\"employee_name\":\"Savannah Grimes\"},{\"employee_id\":21,\"employee_name\":\"Ms. Darrick Moore\"},{\"employee_id\":22,\"employee_name\":\"Meta Hermann MD\"},{\"employee_id\":23,\"employee_name\":\"Mr. Ellsworth Sauer\"},{\"employee_id\":24,\"employee_name\":\"Salvatore Marks\"},{\"employee_id\":25,\"employee_name\":\"Rory Bahringer I\"},{\"employee_id\":26,\"employee_name\":\"Rory Robel Sr.\"},{\"employee_id\":27,\"employee_name\":\"Katheryn Erdman\"},{\"employee_id\":28,\"employee_name\":\"Lexie Deckow Jr.\"},{\"employee_id\":29,\"employee_name\":\"Erling Jenkins\"},{\"employee_id\":30,\"employee_name\":\"Chris Gusikowski\"},{\"employee_id\":31,\"employee_name\":\"Kelli Mraz\"},{\"employee_id\":32,\"employee_name\":\"Gregg Hartmann\"},{\"employee_id\":33,\"employee_name\":\"Darrel Olson\"},{\"employee_id\":34,\"employee_name\":\"Roxane Nicolas\"},{\"employee_id\":35,\"employee_name\":\"Julian Hintz\"},{\"employee_id\":36,\"employee_name\":\"Elian White\"},{\"employee_id\":37,\"employee_name\":\"Annabel Nader\"},{\"employee_id\":38,\"employee_name\":\"Brycen Vandervort V\"},{\"employee_id\":39,\"employee_name\":\"Ms. Gerald Roob\"},{\"employee_id\":40,\"employee_name\":\"Dr. Lesley Feil\"},{\"employee_id\":41,\"employee_name\":\"Owen Schmidt\"},{\"employee_id\":42,\"employee_name\":\"Kayden Effertz\"},{\"employee_id\":43,\"employee_name\":\"Muhammad Funk\"},{\"employee_id\":44,\"employee_name\":\"Justyn Klein\"},{\"employee_id\":45,\"employee_name\":\"Ms. Jennie Pfannerstill\"},{\"employee_id\":46,\"employee_name\":\"Ms. Celestine Konopelski\"},{\"employee_id\":47,\"employee_name\":\"Kayden Jones\"},{\"employee_id\":48,\"employee_name\":\"Dr. Anabelle Emmerich\"},{\"employee_id\":49,\"employee_name\":\"Mrs. Isabell Kemmer\"},{\"employee_id\":50,\"employee_name\":\"Jovani Kiehn\"},{\"employee_id\":51,\"employee_name\":\"Otis Schiller\"},{\"employee_id\":52,\"employee_name\":\"Mrs. Aron Daniel\"},{\"employee_id\":53,\"employee_name\":\"Lurline Mayer\"},{\"employee_id\":54,\"employee_name\":\"Tiana Wisozk\"},{\"employee_id\":55,\"employee_name\":\"Laila Predovic\"},{\"employee_id\":56,\"employee_name\":\"Moises Carter\"},{\"employee_id\":57,\"employee_name\":\"Lizzie Yost\"},{\"employee_id\":58,\"employee_name\":\"Zoe Kirlin\"},{\"employee_id\":59,\"employee_name\":\"Kirk Romaguera\"},{\"employee_id\":60,\"employee_name\":\"Travis Orn\"},{\"employee_id\":61,\"employee_name\":\"Dr. Okey Mertz\"},{\"employee_id\":62,\"employee_name\":\"Kristoffer Gerhold\"},{\"employee_id\":63,\"employee_name\":\"Unique Beier\"},{\"employee_id\":64,\"employee_name\":\"Mrs. Halle Runolfsson\"},{\"employee_id\":65,\"employee_name\":\"Ariane Kris\"},{\"employee_id\":66,\"employee_name\":\"Irma Witting III\"},{\"employee_id\":67,\"employee_name\":\"Rupert Streich PhD\"},{\"employee_id\":68,\"employee_name\":\"Dahlia Kemmer Sr.\"},{\"employee_id\":69,\"employee_name\":\"Ms. George Thompson\"},{\"employee_id\":70,\"employee_name\":\"Emie Green IV\"},{\"employee_id\":71,\"employee_name\":\"Miss Ibrahim Botsford\"},{\"employee_id\":72,\"employee_name\":\"Felton Waters IV\"},{\"employee_id\":73,\"employee_name\":\"Letitia Thiel\"},{\"employee_id\":74,\"employee_name\":\"Marquis Corwin\"},{\"employee_id\":75,\"employee_name\":\"Destini Rogahn V\"},{\"employee_id\":76,\"employee_name\":\"Carleton Steuber\"},{\"employee_id\":77,\"employee_name\":\"Amiya Von PhD\"},{\"employee_id\":78,\"employee_name\":\"Adele Kunde\"},{\"employee_id\":79,\"employee_name\":\"Miss Elijah Glover\"},{\"employee_id\":80,\"employee_name\":\"Joelle Thiel\"},{\"employee_id\":81,\"employee_name\":\"Eino Bogan\"},{\"employee_id\":82,\"employee_name\":\"Ms. Jake Kerluke\"},{\"employee_id\":83,\"employee_name\":\"Ethyl Waters\"},{\"employee_id\":84,\"employee_name\":\"Vanessa Lindgren\"},{\"employee_id\":85,\"employee_name\":\"Valentin Cummerata\"},{\"employee_id\":86,\"employee_name\":\"Dr. Halle Fadel\"},{\"employee_id\":87,\"employee_name\":\"Savanah King\"},{\"employee_id\":88,\"employee_name\":\"Christop Effertz\"},{\"employee_id\":89,\"employee_name\":\"Cristopher Jacobs\"},{\"employee_id\":90,\"employee_name\":\"Prudence Cruickshank II\"},{\"employee_id\":91,\"employee_name\":\"Karlee Herman\"},{\"employee_id\":92,\"employee_name\":\"Rosamond Rau\"},{\"employee_id\":93,\"employee_name\":\"Marina Fritsch\"},{\"employee_id\":94,\"employee_name\":\"Stefanie Johns\"},{\"employee_id\":95,\"employee_name\":\"Tevin Murazik\"},{\"employee_id\":96,\"employee_name\":\"Audra Bins\"},{\"employee_id\":97,\"employee_name\":\"Melba Larson\"},{\"employee_id\":98,\"employee_name\":\"Asa Schaefer\"},{\"employee_id\":99,\"employee_name\":\"Spencer Jenkins II\"},{\"employee_id\":100,\"employee_name\":\"Elda Brakus\"}]}" string

0

1 Answer 1

3

You will need to change your JsonConvert to :
var data = JsonConvert.DeserializeObject<RootObject>(jsonString);

Alternatively you could remove the employees section from your JSON

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

1 Comment

That's great. If this solved your problem, then please mark this answer as 'accepted'. This will help other readers with similar problems to find a solution.

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.