2013-08-25 3 views
0

Я экспериментирую с API soundcloud и пытаюсь извлечь все названия плейлистов из моего объекта JSON, чтобы составить список со ссылками. На самом деле я не много опыта работы с JSON и поэтому я не могу управлять, чтобы вызвать любой переменной образуют расшифрованный массив JSON ...Как получить доступ к данным Soundcloud JSON

http://api.soundcloud.com/users/55607614/playlists.json?client_id=YOUR_CLIENT_ID

Я уже сделал взглянуть на структуру с помощью http://jsonviewer.stack.hu/ но это действительно не помогло мне ...

$json = json_decode(file_get_contents("http://api.soundcloud.com/users/55607614/playlists.json?client_id=YOUR_CLIENT_ID")); 
echo $json[??][??]...; 

Любые идеи? Благодаря!

+0

http://developers.soundcloud.com/docs/api/sdks# – underscore

+0

https://github.com/mptre/php-soundcloud – underscore

+0

Я уже имел взгляд на SDK, но не действительно знаю, какая функциональность может мне помочь. – dudade

ответ

0
private SCPlaylistObject playListObject, plTestObject; 
public string TrackList; 
private List<SCTrackObjects> TListTest; 

/// <summary> 
/// Deserializes JSON data into object from string 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="jsonString"></param> 
    /// <returns>json object</returns> 
    public static T Deserialize<T>(string jsonString) 
    { 
     DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(T)); 

     MemoryStream MemStream = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)); 

     T result = (T)deserializer.ReadObject(MemStream); 

     return result; 


    } 


public async Task<string> GetUserTracks() // Async Call to get user id 
    { 
     try 
     { 
      responseText = await GetjsonStream(); 

      SCUserID = userObject.id; 

      TrackList = await GetTracks(); 


      TList = Deserialize<List<SCTrackObjects>>(TrackList); 

      return TrackList; 


     } 
     catch (Exception ex) 
     { 
      Console.Out.WriteLine(ex.Message); 
      return ex.Message; 
     } 


public async Task<string> GetTracks() //Function to read from given url 
{ 
    HttpClient client = new HttpClient(); 
    string url = SCLink + SCAPIUsers + SCUserID + "/tracks?client_id=" + soundcloudAPI; 
    HttpResponseMessage response = await client.GetAsync(url); 
    HttpResponseMessage v = new HttpResponseMessage(); 
    return await response.Content.ReadAsStringAsync(); 
    } 
} 

    public async Task<string> GetjsonStream() //Function to read from given url 
    { 
     HttpClient client = new HttpClient(); 
     string url = SCLink + SCAPIUsers + SCNameField + ".json?client_id=" + soundcloudAPI; 
     HttpResponseMessage response = await client.GetAsync(url); 
     HttpResponseMessage v = new HttpResponseMessage(); 
     return await response.Content.ReadAsStringAsync(); 
    } 
+1

Пожалуйста, добавьте объяснение в свой ответ, «просто код» недостаточно (также форматирование немного выключено). –

Смежные вопросы