如果json字段包含冒号(:),我们如何解析?像这样:
{
"dc:creator":"Jordan, Micheal",
"element:publicationName":"Applied Ergonomics",
"element:issn":"2839749823"
}
事实上,我想知道如何使用像restsharp这样的库进行映射?
答案 0 :(得分:15)
使用Json.Net
string json = @"{
""dc:creator"":""Jordan, Micheal"",
""element:publicationName"":""Applied Ergonomics"",
""element:issn"":""2839749823""
}";
var pub = JsonConvert.DeserializeObject<Publication>(json);
public class Publication
{
[JsonProperty("dc:creator")]
public string creator { set; get; }
[JsonProperty("element:publicationName")]
public string publicationName { set; get; }
[JsonProperty("element:issn")]
public string issn { set; get; }
}
或强>
Console.WriteLine(JObject.Parse(json)["dc:creator"]);
答案 1 :(得分:3)
如果您使用DataContractJsonSerializer
,则DataMemberAttribute
具有属性Name
,可用于覆盖默认名称。这意味着当您反序列化时,属性dc:creator
的json值被赋值给Publication::Creator
属性,相反,当您序列化C#对象时。
例如:
public class Publication
{
[DataMember(Name="dc:creator")]
public string Creator { set; get; }
[DataMember(Name="element:publicationName")]
public string PublicationName { set; get; }
[DataMember(Name="element:issn")]
public string Issn { set; get; }
}
如果您选择使用Json.Net
,@ L.B的回答是可行的方法。