Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Newtonsoft.JSON serializeobject returns empty JSON string [duplicate]

Everyone got this question a lot, and I tried almost everything but none of it works for me.

So I am developing in Xamarin.Forms and is about to send my data to the server. I have this class:

public class Customer
{

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string BirthDate { get; set; }
    public string Password { get; set; }
    public string EmailAddress { get; set; }
    public string ContactNumber { get; set; }

}

Then I used Newtonsoft's SerializeObject method:

Customer customer = new Customer
        {
            FirstName = FirstName.Text,
            LastName = LastName.Text,
            BirthDate = BirthDate.Date.ToString(),
            EmailAddress = Email.Text,
            Password = Password.Text,
            ContactNumber = Mobile.Text
        };


        var item = JsonConvert.SerializeObject(customer);

But variable item results in a string containing an empty JSON object {}. Is something wrong with my implementation?

EDIT: Also, I noticed that although my Customer class and its members are public, the debugger still counts them as "non-public" members. Please see "screenshot of debugger":

Screenshot of debugger

like image 745
Lala Avatar asked Feb 21 '18 20:02

Lala


2 Answers

Your question is a little misleading since you show your class properties as public.

Also, I noticed that although my Customer class is public, its members are non-public:

WIth that being said these are your options:

  1. If your properties can be public, make them public
  2. If the properties need to remain private, add the [JsonProperty] attribute to them
like image 53
ertdiddy Avatar answered Nov 14 '22 23:11

ertdiddy


It appears that Xamarin Live Player has some issues with the serializer. I tried plugging my phone via USB and it works!

like image 25
Lala Avatar answered Nov 14 '22 22:11

Lala