2012-03-31 67 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的反序列化。