В вашем коде есть несколько проблем. Но даже если вы решите их, вы не сможете проанализировать список принятых станций с DataContractJsonSerializer
из коробки.
Пояснение:
Веб-сайт, предлагающий веб-службу, которую вы используете , говорит, что ответ от вашего первого "потока JSON" выглядит следующим образом:
{ "код": 201, "успех": { "Gares": { "Вильфранш-d''alb.-Ce": 1750, "вильфранш
de rgue-12 ": 1749, ...}}}
Посмотрите на станции и их идентификаторы:
{"villefranche-d''alb.-ce»: 1750, «villefranche de rgue-12»: 1749, ...}
Это ассоциативный массив, в котором ключи и значения явно не обозначены как «Ключ» и «Значение». Но эти декорации необходимы для DataContractJsonSerializer
для анализа JSON. Они должны быть в формате
[{ «Key»: «вильфранш-d''alb.-се», «Значение»: «1750»}, { «Key»: «вильфранш
de rgue-12 »,« Значение »:« 1749 »}]
для правильного анализа DataContractJsonSerializer
. (Причина в том, что этот сериализатор поддерживает более сложные типы, чем int
и string
для использования в качестве ключей и значений.)
Этот блог содержит очень хорошее описание вопроса и того, как JavaScriptSerializer
может быть решением. Но, к сожалению, этот класс недоступен в Silverlight.
Больше людей, подобных вам, таких же:
Решение:
Использование Json.NET .