0

我正在使用谷歌 API 来获取两个地方之间的距离,并检查我是否获得了距离信息,API 的 json 响应中有一个状态字段,可以读取“OK”或“NOT_AVAILABLE”或类似的内容。我想检查状态是否正常,所以我可以使用距离信息,所以我这样做

if (disJSON["rows"][0]["elements"][0]["status"] == "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)重载而不是比较引用标识:

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