2013-04-29 31 views
0

我已經構建了一個REST API,爲我的應用程序的一部分返回JSON ...此處它返回車輛列表中的車輛規格。有一列「特徵」是每輛車上的布爾字段。我在XML解決方案的另一部分提供的XML Feed中試圖實現的是僅顯示當前存在的功能,而不顯示返回false的功能。c#JSON API和XML提要,但需要過濾一些結果...使用string.Replace?

 var rawApiResponse = GetRawApiResponse(URLForAPI); 

     //Convert the JSON returned result to XML 

     var xmlDocument = JsonConvert.DeserializeXmlNode(rawApiResponse, "DealersStock"); 
     var sw = new StringWriter(); 
     var xw = new XmlTextWriter(sw); 
     xmlDocument.WriteTo(xw); 

     return Content(sw.ToString(), "text/xml"); 

我想知道什麼是最好的方法,以消除在XML中不需要的返回值:

我的XML是通過下面的代碼形成的呢?

我一起寫的線路思維串並使用

string.Replace("<Feature1>false</Feature1>", "") 

還是有在這一點處理XML更好的辦法?

或者我應該在應用程序的API級別執行此操作嗎?

非常感謝

回答

0

我會建議你在那裏檢索數據來做到這一點。喜歡的東西

v.Features.Where(f => f) 

編輯:

給定的IEnumerable <車輛> X,你可以枚舉它並選擇只是 「真實」 的特色

foreach (var v in x) 
    v.Features = v.Features.Where(f => f); 

(你可以創建一個新的IEnumerable如果你不想因爲某些原因而改變原始集合中的數據)

+0

非常感謝您的快速響應,所以您會建議我在API請求中進行過濾數據正在填充..不確定這將完全工作,因爲會根據功能篩選出結果,但我會給它一個看看我能做些什麼:) – Fuzzybear 2013-04-29 09:51:24

+0

請注意,Where條件應用於特徵屬性,而不是「x」變量。我將用一個例子來編輯。 – qwertoyo 2013-04-29 09:55:24