C# 在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"]); 如果使用,则具有可用于替

如果json字段包含冒号(:),我们如何解析?像这样:

{
  "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; }
}