如何解析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你不需要任何類名稱的屬性.. –