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

Comparing the value of a variable on json in C# to a string

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

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

问题是它 returns 每次都是假的,即使状态正常

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

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

但它也一直 returns 错误。有什么想法可以正确比较吗?

我怀疑问题是 disJSON["rows"][0]["elements"][0]["status"] 的编译时类型是 JToken 或类似的东西。如果您转换为字符串,则 a) 您将比较一个字符串和一个字符串; b) 编译器将使用 bool ==(string, string) 重载而不是比较引用标识:

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