2013-10-22 61 views
1

我有一個API返回一些對象,稱之爲ObjectA。實際上,這絕不會自行返回,攜帶此數據的響應具有以下形式之一:屬性名稱與對象名稱相同的靜態初始化程序

{ 
    "Status":"Success", 
    "ObjectA": { 
      "Prop1":"Value", 
      "Prop2":"Value" 
    } 
} 

{ 
    "Status":"Success", 
    "ObjectAs": [ 
     { 
      // instances of ObjectA 
     } 
    ] 
} 

現在我想更新此對象。它通過提供您想要更新的屬性作爲PUT的主體來完成。起初,我認爲這個對象將是整個機構,在與API小組交流之後,我瞭解到它實際上應該是形式;

{ 
    "ObjectA": { 
     "PropToUpdate":"NewValue" 
    } 
} 

這裏的問題是我正在使用;

string body = JsonConvert.SerializeObject(new { PropToUpdate = "SomeValue" }); 

但是,現在需要像下面那樣不能編譯的東西;

string body = JsonConvert.SerializeObject(new ObjectA = new { PropToUpdate = "SomeValue" }}); 

有沒有針對這種情況的解決辦法?我認爲不編譯的原因是相當明顯的,我知道有幾個工作(不要使用靜態初始化或更改客戶端中的類名稱),是否有任何方法可以在不使用任何我提到的解決方法?有沒有可能像預編譯器方向@字符串文字,這將允許我使用靜態初始化?

回答

1
JsonConvert.SerializeObject(new { ObjectA = new { PropToUpdate = "SomeValue" } }) 
// indented, that's 

{ 
    "ObjectA": { 
    "PropToUpdate": "SomeValue" 
    } 
} 
+0

我有一個不好的習慣,發佈有明顯答案的問題,因爲我忽略了語法錯誤。 – evanmcdonnal