ServiceStack.Text JsonSerializer无法反序列化自己的序列化模式(类型定义应以'{'SerializationException开头)

时间:2014-06-18 14:59:16

标签: .net serialization servicestack jsonserializer servicestack-text

我在.NET中使用ServiceStack.Text。 我想序列化一个实例:

IDictionary<string, ResourceSpec>

ResourceSpec是:

public class ResourceSpec
{
    public string TypeName
    {
        get;
        set;
    }

    public HashSet<Property> Properties
    {
        get;
        set;
    }
}

它序列化为这种格式:

{1:{"TypeName":"channel","Properties":[audio,video]},2:{"TypeName":"channel","Properties":[audio,video,encrypted]}}

当我尝试使用以下命令反序列化时:

JsonSerializer.DeserializeFromStream<IDictionary<string, ResourceSpec>>(file);

我得到例外:

SerializationException: "Type definitions should start with a '{', expecting serialized type 'ResourceSpec', got string starting with: Properties"

任何想法有什么不对?

1 个答案:

答案 0 :(得分:1)

您的序列化字符串似乎缺少一些双引号,例如&#34; 1&#34; &#34; audio&#34;,&#34; video&#34;等等。使用3.9.71对我引用的字符串进行反序列化。