Sivakumar

Sivakumar

  • NA
  • 551
  • 210.5k

Exception type 'Newtonsoft.Json.JsonSerializationException

Sep 11 2015 1:32 AM
Hi,
 
I get an exception like this :
 
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll but was not handled in user code

Additional information: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'TaskAPI.LoginData[]' 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<T>) 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 'AccessToken', line 1, position 15. 
 
This is my code :
 
public partial class Form1 : Form
{

string URI;
string email = ConfigurationSettings.AppSettings["email"].ToString();
string password = ConfigurationSettings.AppSettings["password"].ToString();

//LoginData ld = new LoginData();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void submit_Click(object sender, EventArgs e)
{
URI = string.Concat(host_textbox.Text, api_textbox.Text);//textBox2.Text + textBox1.Text;

GetLogin();
}
#region Methods

private async void GetLogin()
{
using (var client = new HttpClient())
{

var login = new LoginData() { Email = email, Password =password };

//ConfigurationSettings.AppSettings{ Email ="email", Password = "password" };
//"{\"Email\":\"[email protected]\",\"Password\":\"password\"}";


//ObjectContent<LoginData> postobj = Message.Create

var response = await client.PostAsJsonAsync(URI, login);


//client.DefaultRequestHeaders.Accept.Clear();
//client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));




//client.DefaultRequestHeaders.Accept.Add(new System.Text.UTF8Encoding,System.Net.Http.Headers.MediaTypeHeaderValue("application/json"));

if (response.IsSuccessStatusCode)
{

var productJsonString = await response.Content.ReadAsStringAsync();
Body_girdview.DataSource = JsonConvert.DeserializeObject<LoginData[]>(productJsonString);
//Body_girdview = productJsonString;
}
}

}
}
#endregion

public class LoginData
{
public string Email { get; set; }

public string Password { get; set; }

}

}
 
Please resolve the issue.
Thank you

Answers (5)