我已经使用 ServiceStack.Text DeserializeFromString 很长时间了,但是在一个新项目中我遇到了一个问题。
我需要解析为对象的 JSON 格式如下:
{"http://SomeUrl.com/":{"http://otherUrl.org/schema#name":[{"value":"val1","type":"val2"}]}}
所以对象名称以 URL 为前缀,所以我无法将其与类成员名称匹配。我尝试使用 DataContract 来映射名称,但它只返回空对象。
是否有另一种使用 ServiceStack.Text 的方法,还是我需要手动解析 JSON?
任何帮助,将不胜感激。
编辑:
经过一番尝试,我设法使用 DataContract 属性解决了这个问题。之前它失败了,因为我指定的类的前缀不正确。我设法像这样解决它:
[DataContract]
public class Schools
{
[DataMember(Name = "http://demo.talisaspire.com/")]
public Items Items { get; set; }
}
[DataContract]
public class Items
{
[DataMember(Name = "http://purl.org/vocab/aiiso/schema#code")]
public IEnumerable<Element> Code { get; set; }
[DataMember(Name = "http://purl.org/vocab/aiiso/schema#knowledgeGrouping")]
public IEnumerable<Element> KnowledgeGrouping { get; set; }
[DataMember(Name = "http://purl.org/vocab/aiiso/schema#name")]
public IEnumerable<Element> Name { get; set; }
[DataMember(Name = "http://purl.org/vocab/aiiso/schema#organizationalUnit")]
public IEnumerable<Element> OrganizationalUnit { get; set; }
[DataMember(Name = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type")]
public IEnumerable<Element> Type { get; set; }
}
public class Element
{
public string Type { get; set; }
public string Value { get; set; }
}