如何解析json字段是否包含冒号(:)?像这样:用JSON中的冒号解析字段名称
{
"dc:creator":"Jordan, Micheal",
"element:publicationName":"Applied Ergonomics",
"element:issn":"2839749823"
}
事实上,我不知道如何使用像restsharp这样的库来进行映射?
如何解析json字段是否包含冒号(:)?像这样:用JSON中的冒号解析字段名称
{
"dc:creator":"Jordan, Micheal",
"element:publicationName":"Applied Ergonomics",
"element:issn":"2839749823"
}
事实上,我不知道如何使用像restsharp这样的库来进行映射?
使用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; }
}
OR
Console.WriteLine(JObject.Parse(json)["dc:creator"]);
如果使用DataContractJsonSerializer
,DataMemberAttribute
具有可用于覆盖默认名称属性Name
。这意味着当你反序列化json的属性值时,dc:creator
被赋值为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的答案是要走的路。
+1真的很好的答案,只是一个注意:你违反命名约定的.NET(即属性应PascalCased) – Leri
是否有任何注释映射类名?就像我们为领域做的一样。 –
@SerhatKoroglu你不需要任何类名称的属性.. –