IList到JSON失败了

时间:2017-05-04 04:35:09

标签: c# json json.net

之前我有这个工作,现在它始终无法将我的IList转换为AsP Core Web应用程序中的JSON。我试过NewtonJson Lib,原生Json()和Ok()都没有用......现在。我现在看到返回的json始终为[{},{},{},{},{}]。

我已经在我的aspcore网络应用上试过了这些。

result = Content(JsonConvert.SerializeObject(status), "application/json");
result = Json(status);
result = Ok(status);
为简单起见,

下面的示例控制台应用程序:

        IList<Sate> c = new List<Sate>();
        c.Add(new Sate("El1", "El1", "El1", "Result1"));
        c.Add(new Sate("El2", "El2", "El2", "Result2"));
        c.Add(new Sate("El3", "El3", "El3", "Result3"));
        c.Add(new Sate("El4", "El4", "El4", "Result4"));
        c.Add(new Sate("El5", "El5", "El5", "Result5"));


        string converted = JsonConvert.SerializeObject(c);
        Console.WriteLine(converted);

public class Sate
{
    public Sate(string El, string E2, string E3, string E4)
    {
        e1 = El;
        e2 = E2;
        e3 = E3;
        e4 = E4;
    }

    private string e1 { get; set; }
    private string e2 { get; set; }
    private string e3 { get; set; }
    private string e4 { get; set; }
}

任何想法,我错过了一个小时......

2 个答案:

答案 0 :(得分:4)

你的问题并没有说明什么不起作用,但我冒昧猜测 - 你的所有班级成员都被标记为private,因此默认情况下他们不会被序列化。如果您希望序列化它们,请将它们公开或用[JsonProperty]标记它们。

答案 1 :(得分:3)

您的属性是私有的,而不是公开的。

{{1}}