2017-06-05 13 views
-1

Google API(YT)から情報を取得しようとしています。 GoogleのAPIからvideoIdを取得する必要があります。C#のJSONから適切な情報を取得できません。

JSONページをダウンロードして結果を逆シリアル化しようとしましたが、動作しません。

これは、JSON結果

{ 
    "kind": "youtube#playlistItemListResponse", 
    "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/E6IhaTG5XEbqo_uSYhCcIvQhtwY\"", 
    "nextPageToken": "CDIQAA", 
    "pageInfo": { 
    "totalResults": 180, 
    "resultsPerPage": 50 
    }, 
    "items": [ 
    { 
    "kind": "youtube#playlistItem", 
    "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/0cAZGJiF62yaNO7GwJlJBsc7DqY\"", 
    "id": "UExNQzlLTmtJbmNLdFB6Z1ktNXJtaHZqN2ZheDhmZHhvai41RDlFNzlCQjE5NzcyQTYx", 
    "snippet": { 
    "publishedAt": "2016-05-19T13:47:40.000Z", 
    "channelId": "UCs72iRpTEuwV3y6pdWYLgiw", 
    "title": "Katy Perry - Dark Horse (Official) ft. Juicy J", 
    "description": "Bla bla bla", 
    }, 
    "channelTitle": "#RedMusic: Just Hits", 
    "playlistId": "PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj", 
    "position": 0, 
    "resourceId": { 
    "kind": "youtube#video", 
    "videoId": "0KSOMA3QBU0" 
    } 
    } 
    }, 

であり、これはVIDEOID

JObject jObj = (JObject)JsonConvert.DeserializeObject(x.Result); 
foreach (var item in jObj["items"]) 
{ 
    string title = item["videoId"].ToString(); 
} 

を取るための私のコードであり、私は私のアプリを起動していたとき、私はSystem.NullReferenceExceptionでエラーが発生しています。

どこに問題がありますか?

string title = item["videoId"].ToString();

へ:

+0

JSONのサンプルを確認してください - 私はblaの後に奇妙なカンマのために正しくコピー&ペーストしなかったと思われます " – mjwills

答えて

0

変更

おかげ

string title = item["resourceId"]["videoId"].ToString();

+0

私は試しましたが、同じ問題を抱えていますが回答がありがとう –

+0

このコードがある場合、 3つの行にエラーがありますか?var g = item ["resourceId"]; var h = g ["videoId"]; string title = h.ToString(); ' – mjwills

+0

string title = h.ToString();エラーが発生しました[リンク](http://i.imgur.com/ArK4ODY.png) –

0
JObject jObj = (JObject)JsonConvert.DeserializeObject(json); 
foreach (var item in jObj["items"]) 
{ 
    string title = item["resourceId"]["videoId"].ToString(); 
} 

あなたは[ "RESOURCEID"]不足しています。

+0

私は試しましたが、同じ問題がありましたが、あなたの答えがありがたいです –

+0

あなたのスクリーンショットではまだ[["resourceId"] 'がありません。 –

+0

しかし、テストしても動作しません。 –

0

私は解決策を見つけた[OK]を、私はそれがない作品をして良い「パス」を入れていない場合、私は、VaRのグラムで次の項目

var g = item["snippet"]["resourceId"]; 

を追加しました。 これで動作しており、ビデオリンクがあります。

ご協力いただきありがとうございます。

+0

これが機能する場合は、あなたの質問で示したサンプルJSONが正しくありません。 resourceIdは元の質問のスニペットの子ではありません。 – mjwills

関連する問題