如何访问名称中包含空格的Json Attribute

时间:2013-06-07 11:00:14

标签: c# json windows-phone

在下面找到json的回复...

{
"personalDetails": {
    "Name ": " Taeyeon",
    "Date Of Birth ": " 03/09/1989",
    "Zodiac ": " Pisces"
},
"education": {
    "High School ": " Jeonju Art High school ",
    "University ": " -"
}

}

我的班级在这里

    public class Biography
{
    public personalDetails personalDetails { get; set; }
    public education education { get; set; }
    public work work { get; set; }
    public personal personal { get; set; }
}


public class personalDetails
{
    public string Name { get; set; }
    public string DateBirth { get; set; }
    public string Zodiac { get; set; }
}

public class education
{
    public string HighSchool { get; set; }
    public string University { get; set; }
}

然后我把代码:

Biography dataSet = JsonConvert.DeserializeObject<Biography>(e.Result);

由于Arttribute具有空间,因此无效。 我该怎么办?

3 个答案:

答案 0 :(得分:9)

尝试添加JsonProperty属性。这应该适合你。

[JsonProperty(PropertyName = "Date Of Birth ")]
public string DateBirth { get; set; }

[JsonProperty(PropertyName = "High School ")]
public string HighSchool { get; set; }

修改

我看到你也有尾随空格,所以更新了上面的属性。为“名称”等做同样的事。

答案 1 :(得分:0)

将Json下载为字符串,并使用类似myString = myString.Replace(@“High School”,“HighSchool”)的内容。这是反序列化之前的步骤。

答案 2 :(得分:0)

这对于某些人可能会有所帮助:

添加命名空间:using Newtonsoft.Json;

var jsonString = "{" +
    "'personalDetails': {" +
        "'Name ': 'Taeyeon'," +
        "'Date Of Birth ': ' 03/09/1989'," +
        "'Zodiac ': ' Pisces'," +
    "}," +
    "'education': {" +
        "'High School ': ' Jeonju Art High school '," +
        "'University ': ' -'," +
    "}" +
"}";

var json = JsonConvert.DeserializeObject(jsonString);            
return Ok(json);