0

Google APIを使用して2つの場所間の距離を取得し、距離情報を取得したかどうかを確認していますAPIのjson応答に、「OK」または「NOT_AVAILABLE」またはそれらの行に沿った何かを読み取ることができるステータスフィールドがあります。距離情報が使えるようにステータスがOKか確認したいのでこんな感じにします

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

問題は、ステータスがOKでも毎回falseを返すことです

デバッガーを調べて値を確認したところ、デバッガーが json の上記の要素に対して表示する値は "\"OK\"" です。これは奇妙です。だから私はこのようなif文の比較文字列としてそれを使用しました

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

しかし、常に false を返します。これを適切に比較する方法はありますか?

4

1 に答える 1

4

問題は、コンパイル時の型がdisJSON["rows"][0]["elements"][0]["status"]isJTokenまたはそのようなものであると思われます。文字列にキャストする場合、a) 文字列と文字列を比較します。b) コンパイラはbool ==(string, string)、参照 ID を比較する代わりにオーバーロードを使用します。

string status = (string) disJSON["rows"][0]["elements"][0]["status"];
if (status == "OK")
{
    ...
}
于 2016-05-15T20:25:30.897 に答える