C# 在JSON中使用冒号解析字段名
如果json字段包含冒号(:),我们如何解析?像这样:C# 在JSON中使用冒号解析字段名,c#,.net,json,C#,.net,Json,如果json字段包含冒号(:),我们如何解析?像这样: { "dc:creator":"Jordan, Micheal", "element:publicationName":"Applied Ergonomics", "element:issn":"2839749823" } 事实上,我想知道如何使用restsharp这样的库来进行映射?使用 或 Console.WriteLine(JObject.Parse(json)["dc:creator"]); 如果使用,则具有可用于替
{
"dc:creator":"Jordan, Micheal",
"element:publicationName":"Applied Ergonomics",
"element:issn":"2839749823"
}
事实上,我想知道如何使用restsharp这样的库来进行映射?使用
或
Console.WriteLine(JObject.Parse(json)["dc:creator"]);
如果使用,则具有可用于替代默认名称的属性。这意味着当您反序列化json时,属性dc:creator
的值被分配给Publication::creator
属性,反之,当您序列化C#object时
例如:
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的命名约定(即属性应为PASCALCASE),是否有用于映射类名的注释?就像我们对字段所做的那样。有一个带破折号(-)的字段名,如何反序列化,在csharp中不可能。@SerhatKoroglu做你为:
@L.B所做的事情,你的解决方案很好。但是当我从json字符串中提取整数时,它返回零,请帮助
Console.WriteLine(JObject.Parse(json)["dc:creator"]);
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; }
}