JSON и LINQ Query - PullRequest
       1

JSON и LINQ Query

1 голос
/ 09 сентября 2011

Я пытаюсь проанализировать файл JSON, показанный ниже, и получить координаты места с определенным именем:

{"Theaters":[{"TheaterName":"Name1","GPSLocation":"3.888689,35.519845"},{"TheaterName":"Name2","GPSLocation":"33.867444,3.527002"},{"TheaterName":"Name3","GPSLocation":"33.897403,3.563645"},{"TheaterName":"Name4","GPSLocation":"34.438693, 3.831660"},{"TheaterName":"Name5","GPSLocation":"3.88392,35.48333"},{"TheaterName":"Name6","GPSLocation":"33.88424,35.483145"},{"TheaterName":"Name7","GPSLocation":"33.972802, 3.610099"},{"TheaterName":"Name8","GPSLocation":"33.857193,35.526886"},
{"TheaterName":"Name9","GPSLocation":"3.36394,35.735929"},{"TheaterName":"Name10","GPSLocation":"3.897403,35.563645"},{"TheaterName":"Name11","GPSLocation":"33.886605,3.508580"},{"TheaterName":"Name12","GPSLocation":"33.892134,3.517423"},
{"TheaterName":"Name13","GPSLocation":"3.917253,35.589074"},{"TheaterName":"Name14","GPSLocation":"33.2860,35.6115"}]}

Используемый мной запрос показан ниже, однако ответом является то выражениене может быть оценено.В чем проблема??Спасибо

var coordinates = from p in JSON["Theaters"].Children()
                                  where p["TheaterName"].Value<string>() == Name1
                                  select p["GPSLocation"].Values();

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Разве вы не хотите следующее?

var coordinates = from p in JSON["Theaters"].Children()
    where p["TheaterName"].Value<string>() == Name1
    select p["GPSLocation"].Value<string>();

В конце концов, ваше местоположение GPS - это список через запятую.

0 голосов
/ 10 сентября 2011

Чем вы ответили?В отладчике Visual Studio?Если это так, вы увидите отложенное выполнение запросов LINQ.Они выполняются при первом доступе или вы вызываете методы расширения ToList (), ToArray () и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...