Я разрабатываю приложение на C#, которое может управлять SqueezeboxServer (SBS). Общение с SBS осуществляется через сообщения JSON до http://serverIP:9000/jsonrpc.js Итак, я отправляю сообщения JSON через HTTPWepRequest и получаю ответы через HTTPWebResponse.Как извлечь информацию из объекта, созданного JavaScriptSerializer
Ответ, который я получаю, представляет собой строку в обозначении JSON. И вот тут проблемы начинаются ... На данный момент я конвертирую сообщение JSON в объект с JavaScriptSerializer. Это выглядит так:
public static Object FromJSON(this string reply)
{
JavaScriptSerializer deSerializer = new JavaScriptSerializer();
return deSerializer.DeserializeObject(reply);
}
Этот код дает мне объект, в котором хранятся данные, которые я прошу. Данные, которые я прошу, могут быть разными. Иногда ответ - это один ответ, в то время как в других ситуациях это может быть несколько вещей.
Рассмотрим два изображения, я включил:
Первый показывает объект после того, как он был возвращен в десериализатор. Вы можете видеть, что объект представляет собой словарь с 4 парами ключ-значение. В kvp меня интересует, это четвертый. Ключевым «результатом» является тот, который содержит данные, которые мне нужны. Но этот ключ имеет еще один Диктонарь как ценность. И это продолжается и продолжается до фактических данных, которые я хочу, это название альбома и его идентификатор.
alt text http://www.freeimagehosting.net/uploads/865397a19e.jpg
На втором изображении данные я хочу это значение 0, которое принадлежит к ключу «_count». Как вы можете видеть, этот объект менее сложный.
alt text http://www.freeimagehosting.net/uploads/f6feb27ab5.jpg
Так Bottomline мой вопрос, как я могу сделать решение, которое может извлекать информацию, которую я хочу, но работает с differt вида объектов (как в разных глубинах)?
Надеюсь, что кто-нибудь может отправить меня в правильном направлении.
Спасибо!