Newtonsoft.JSON serializeobject返回空的JSON字符串

时间:2018-02-21 20:08:05

标签: c# json xamarin xamarin.forms json.net

每个人都得到了很多这个问题,我几乎尝试了所有的东西,但没有一个能适合我。

所以我正在开发Xamarin.Forms并且即将把我的数据发送到服务器。我有这门课:

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

}

然后我使用了Newtonsoft的SerializeObject方法:

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

但变量item会产生一个包含空JSON对象{}的字符串。我的实施有问题吗?

编辑:另外,我注意到虽然我的Customer类及其成员是公开的,但调试器仍将其视为“非公共”成员。请参阅“调试器的屏幕截图”:

Screenshot of debugger

2 个答案:

答案 0 :(得分:3)

您的问题有点误导,因为您将您的课程属性显示为公开。

  

另外,我注意到虽然我的客户类是公开的,但其成员是非公开的:

说到这些是你的选择:

  1. 如果您的媒体资源可以公开,请将其公开
  2. 如果属性需要保持私有,请向其添加[JsonProperty]属性

答案 1 :(得分:3)

看来Xamarin Live Player在序列化程序方面存在一些问题。我尝试通过USB插入手机,它可以工作!