将C#中json上的变量值与字符串进行比较

将C#中json上的变量值与字符串进行比较,c#,json,compare,google-distancematrix-api,C#,Json,Compare,Google Distancematrix Api,我正在使用一个google API来获取两个地方之间的距离,并检查我是否获得了距离信息。API的json响应中有一个状态字段,可以读取“OK”或“NOT_AVAILABLE”或类似的内容。我想检查状态是否正常,这样我就可以使用距离信息,这样我就可以这样做了 if (disJSON["rows"][0]["elements"][0]["status"] == "OK") 问题是,即使状态是OK,它每次都返回false 我查看了调试器以检查值,调试器为json的上述元素显示的值是“\”OK\”。这

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

if (disJSON["rows"][0]["elements"][0]["status"] == "OK")
问题是,即使状态是OK,它每次都返回false

我查看了调试器以检查值,调试器为json的上述元素显示的值是“\”OK\”。这很奇怪。我用它作为if语句的比较字符串,如下所示

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

但它也总是返回false。你知道如何正确地进行比较吗?

我怀疑问题在于
disJSON[“rows”][0][“elements”][0][“status”]
的编译时类型是
JToken
或类似的类型。如果您强制转换为字符串,那么a)您将比较字符串与字符串;b) 编译器将使用
bool==(字符串,字符串)
重载,而不是比较引用标识:

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

我怀疑问题在于
disJSON[“行”][0][“元素”][0][“状态”]
的编译时类型是
JToken
或类似的类型。如果您强制转换为字符串,那么a)您将比较字符串与字符串;b) 编译器将使用
bool==(字符串,字符串)
重载,而不是比较引用标识:

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

工作得很好!谢谢工作得很好!谢谢