2016-05-15 3 views
0

Я использую API Google для того, чтобы получить расстояние между двумя местами, и чтобы проверить, есть ли информация о расстоянии, есть поле состояния в ответ json для API, который может прочитайте «OK» или «NOT_AVAILABLE» или что-то в этом роде. Я хочу, чтобы проверить статус ОК, так что я могу использовать данные расстояния, так что я это сделать, как этотСравнение значения переменной в json в C# со строкой

if (disJSON["rows"][0]["elements"][0]["status"] == "OK") 

Дело в том, что она возвращает ложное каждый раз, даже если состояние OK

Я посмотрел в отладчик, чтобы проверить значение и значение, которое показывает отладчик для вышеуказанного элемента json, - «\» OK \ "". Что странно. Поэтому я использовал это как строку сравнения в операторе if, например:

if (disJSON["rows"][0]["elements"][0]["status"] == "\"OK\"") 

Но он также возвращает ложь все время. Любые идеи, как правильно это сравнить?

ответ

4

Я подозреваю, что проблема заключается в том, что тип компиляции disJSON["rows"][0]["elements"][0]["status"] составляет JToken или что-то в этом роде. Если вы добавите в строку, то: а) вы будете сравнивать строку со строкой; b) компилятор будет использовать перегрузку bool ==(string, string) вместо сравнения для эталонного удостоверения:

string status = (string) disJSON["rows"][0]["elements"][0]["status"]; 
if (status == "OK") 
{ 
    ... 
} 
+0

Работало отлично! Благодаря! – Atirag

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