2017-04-09 122 views
2

從JObject開始,我可以得到我感興趣的陣列:Linq查詢到JSON字符串

JArray partial = (JArray)rssAlbumMetadata["tracks"]["items"]; 

第一個問題:「部分」包含了很多的屬性,我不感興趣的的。 我怎樣才能得到我需要的東西?

第二個問題:一旦在第一個任務中成功,我會得到一個重複項目的JArray。我怎樣才能得到唯一的? 結果應該是這樣的

{ 
'composer': [ 
       { 
       'id': '51523', 
       'name': 'Modest Mussorgsky' 
       }, 
       { 
       'id': '228918', 
       'name': 'Sergey Prokofiev' 
       }, 
     ] 
} 

讓我從喜歡的東西開始:

[ 
    { 
    "id": 32837732, 
    "composer": { 
     "id": 245, 
     "name": "George Gershwin" 
    }, 
    "title": "Of Thee I Sing: Overture (radio version)" 
    }, 
    { 
    "id": 32837735, 
    "composer": { 
     "id": 245, 
     "name": "George Gershwin" 
    }, 
    "title": "Concerto in F : I. Allegro" 
    }, 
    { 
    "id": 32837739, 
    "composer": { 
     "id": 245, 
     "name": "George Gershwin" 
    }, 
    "title": "Concerto in F : II. Adagio" 
    } 
] 
+0

你應該包括你的JSON,你希望得到什麼。這將有助於人們幫助你 –

回答

0

第一個問題:

我怎麼能得到的只有我需要什麼?

沒有魔法,你需要讀取整個JSON字符串,然後查詢對象以找到你要找的東西。如果這是您需要的,則無法讀取部分JSON。你還沒有提供數據的例子,所以不可能指定如何查詢。

第二個問題,我想是:如何去重複對象數組的內容?

再說一遍,我沒有你的對象的全貌,但是這個例子應該能向你展示 - 使用LINQ作爲你的要求:

var items = new []{new {id=1, name="ali"}, new {id=2, name="ostad"}, new {id=1, name="ali"}}; 
var dedup = items.GroupBy(x=> x.id).Select(y => y.First()).ToList(); 
Console.WriteLine(dedup); 
+0

感謝幫助我編輯我的代碼的人... –

+0

沒有更多的評論...請幫助!謝謝。 –