I'm just getting started messing around with the  SO api, I haven't worked with JSON before, and I am getting a strange result from a basic call (No API Key).

    WebClient stackClient = new WebClient();
    string result = stackClient.DownloadString(@"http://api.stackoverflow.com/0.8/stats");

The result is:

> ‹í½`I–%&/mÊ{JõJ×àt¡€`$Ø@ìÁˆÍæ’ìiG#)«*ÊeVe]f@Ìí¼÷Þ{ï½÷Þ{ï½÷º;N'÷ßÿ?\fdlöÎJÚÉž!€ªÈ?~|?"~ñoœ¤éGM›µEÓÓæ£Gé÷ðQšþbùA߶U›•¿ÿ/ZçÔ¢Z¢É§Ÿ~ºs0ê´X/³es•×ùŒšìîܸ{¯ÛDÄîýýƒûûÝÓj±È—-Zì=ع·ói¯—˪͇vwwöº_O²Ù…|ÿpÿþnþº‘î÷öïïݻᄉ£ûýWyýû/ŠåºÍ©ÙÎøÁ×H±›ìŽ?õî{@¼ž²Uñû_ꌾ³T¦oܧíŒ>²¯ÐWu~Y˜ïvÇ;ãݽ{ûãûŸ>8øÈ4ú%ò
> ÿøþoœü’äÿNïþìÚ

I'm not sure what sort of formatting I'm missing, but this looks like I'm missing something obvious, it just isn't obvious to me.

Any thoughts?


Edited to add a bit of code to decompress the API data:

    WebClient stackClient = new WebClient();
    byte[] compressedData = stackClient.DownloadData(@"http://api.stackoverflow.com/0.8/stats");
    int messageLength = BitConverter.ToInt32(compressedData, 0);
    
            using (MemoryStream ms = new MemoryStream(compressedData,0,compressedData.Length))
            {
                byte[] decompressedData = new byte[messageLength];
                using (GZipStream gZip = new GZipStream(ms, CompressionMode.Decompress))
                {
                    gZip.Read(decompressedData, 0, decompressedData.Length);
                }
    
                string result = Encoding.UTF8.GetString(decompressedData);
            }