2017-04-09 78 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

没有更多的评论...请帮助!谢谢。 –