2015-07-02 54 views
2

我正在使用json .net來serlize通用列表,但它帶回額外的數據在我的JSON respose時,我只想我的字段名稱和值。我曾嘗試使用下面的JSONConvert簡單語法,但即時通訊思考我將不得不基於從myList返回的值創建一個新的結果變量。Json從實體返回額外的值

public string GetListByUserId(int userId) 
{ 

     List<curoList> myList = _db.GetAllListsByUserId(userId); 

     var json = JsonConvert.SerializeObject(myList); 

     return json; 

} 

在數據的包括像EntitySetName時,我只是想等領域能像字段名:fieldValue方法,這使我對我的第二個問題與json.net如何將一個將數據轉換列表對象

編輯

我忘了,包括對u人的測試數據。

[{「$ id」:「1」,「id」:1,「firstName」:「David」,「lastName」:「Buckley」,「address1」:「」,空, 「縣」:空, 「郵政編碼」:空, 「EMAILADDRESS」:空, 「aboutme」:空, 「主動」:真 「的EntityKey」:{ 「$標識」: 「2」, 「EntitySetName」: 「persons」,「EntityContainerName」:「curoEntities」,「EntityKeyValues」:[{「Key」:「id」,「Type」:「System.Int32」,「Value」:「1」}]}}]

Eidt 2 這是展示我如何正在創建我的數據

public List<person> GetPersonByIdDal(int personId) 
{ 
     List<person> list = new List<person>(); 

     try 
     { 
      list = (from myPersons in curoEntities.persons where myPersons.id == personId && myPersons.active==true select myPersons).ToList(); 
     } 
     catch (Exception ex) 
     { 
      throw new EntityContextException("GetPersonById where active = true failed.", ex); 
     } 

     return list; 
} 
+0

感謝您的投票,無論是誰;-) – rogue39nin

+0

我們使用與json網絡的複雜對象的列表,它不會給我們任何額外的數據。我猜你看到這是因爲你的數據庫容器返回對象的方式。什麼是您的數據庫容器發出的實體類型。 – Prashant

+0

您可以用['[JsonIgnore]']標記您不想要的屬性(http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonIgnoreAttribute.htm)。如果你想忽略所有的基類屬性,比如說,你可以做一些像https://stackoverflow.com/questions/30063259/jproperty-writeto-with-collections-in-a-jsonconverter。但要給出一個真正的答案,它將有助於查看問題的[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – dbc

回答

0

實體鍵可能來自您的ORM。你在使用Entity-Framework嗎?您可以使用忽略,或者你可以不喜歡

var myList = _db.GetAllListsByUserId(userId).Select(x=> new SomeDto{ prop1 = x.prop1 ... }).toList(); 

public class SomeDto{ 
    public string prop1 {get;set;} 
} 

這會給你,只有你定義什麼包含一個List對象,這也使得查詢,只要快你不想整個結果是在那裏。

如果您正在使用實體框架,您的db-context也可以在dbcontext設置中進行配置,其中可能會轉換諸如代理創建之類的東西。請小心,在全球範圍內這樣做,因爲它可能會擾亂您的更新跟蹤。

+0

我只是在實體中使用我自己的類,但cuase我使用List它帶回等屬性,因爲我會嘗試你的建議在monring中,但從哪裏來的?如看到它被歸類爲var而不是類型對象列表? – rogue39nin

+0

var只是用來簡化它。適當的返回值是列表,我將其作爲數據傳輸對象類添加到該場合下。由於對象仍然是代理並附加到上下文,因此實體事物被附加。 – thsorens

+0

請看上面的編輯 – rogue39nin