1

我正在尝试使用 ServiceStack.Text 将 JSON 字符串“{Hints:6}”反序列化为一个类。下面是一个测试用例。问题是控制台打印出 0 而不是 6。所以似乎“ HintsCount ”类中的“ Hints ”字段没有设置为新值。

public class HintsCount
{
    public int Hints { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var hintsCount = JsonSerializer.DeserializeFromString<HintsCount>("{Hints:6}");

        Console.WriteLine(hintsCount.Hints);

        Console.ReadLine();
    }
}

控制台打印出“0”而不是预期的“6”。

知道为什么会这样吗?

4

2 回答 2

1

试试这个:

var hintsCount = JsonSerializer.DeserializeFromString<HintsCount>(@"{""Hints"":6}");

或者

var hintsCount = JsonSerializer.DeserializeFromString<HintsCount>("{\"Hints\":6}");
于 2013-07-10T17:33:40.333 回答
1

请注意,这不是有效的 JSON:

"{Hints:6}"

JSON 要求对象文字的所有属性名称都被引用,请尝试:

"{\"Hints\":6}"

您可以序列化模型以找出正确的 JSON 应该是什么,例如:

new HintsCount { Hints = 6 }.ToJson().Print();
于 2013-07-10T17:40:14.707 回答