2012-03-31 66 views
4

我有一些JSON我想要反序列化,但我想将其中一个属性视为字符串,而不是对象。JSON.Net - 如何将JSON反序列化为对象,但将属性视为字符串而不是JSON?

作为例子,JSON看起来是这样的:

{ 
    "name":"Frank", 
    "sex":"male", 
    "address": { 
       "street":"nowhere st", 
       "foo":"bar" 
      } 
} 

我想将它反序列化到这个对象 - 处理的地址对象作为字符串文字:

public class Person 
{ 
    public string name; 
    public string sex; 
    public string address; 
} 

我试着从字面上反序列化到这个对象,但得到错误:

无法将JSON对象反序列化为类型'System.String'。

任何想法?

干杯

回答

2

最简单的方法是,如果你可以修改你的Person类和喜欢你的地址属性创建一个Address类:

public class Person 
{ 
    public string name; 
    public string sex; 
    public Address address; 
} 

public class Address 
{ 
    public string street; 
    public string foo; 
} 

这将让JSON.NET反序列化的地址对象为你。

如果你不能修改你的类 - 我相信解决方案需要手动处理Person的反序列化。