首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSON中用冒号解析字段名

在JSON中用冒号解析字段名
EN

Stack Overflow用户
提问于 2014-02-28 07:52:30
回答 2查看 5.9K关注 0票数 5

如果json字段包含冒号(:),我们如何解析?如下所示:

代码语言:javascript
复制
{
  "dc:creator":"Jordan, Micheal",
  "element:publicationName":"Applied Ergonomics",
  "element:issn":"2839749823"
}

实际上,我想知道如何使用像restsharp这样的库来进行映射?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-28 07:56:23

使用Json.Net

代码语言:javascript
复制
string json = @"{
            ""dc:creator"":""Jordan, Micheal"",
            ""element:publicationName"":""Applied Ergonomics"",
            ""element:issn"":""2839749823""
        }";

var pub = JsonConvert.DeserializeObject<Publication>(json);
代码语言:javascript
复制
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; }
}

代码语言:javascript
复制
Console.WriteLine(JObject.Parse(json)["dc:creator"]);
票数 21
EN

Stack Overflow用户

发布于 2014-02-28 07:58:23

如果使用DataContractJsonSerializer,则DataMemberAttribute具有可用于覆盖默认名称的属性Name。这意味着当您反序列化属性json值时,dc:creator被分配给Publication::Creator属性,而当您序列化C#对象时则相反。

例如:

代码语言:javascript
复制
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的答案就是方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22089319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档