【问题标题】:Detect True/False value from a JSON string从 JSON 字符串中检测真/假值
【发布时间】:2015-04-01 03:18:25
【问题描述】:

我有以下代码:

string result = "{\n  \"success\": false,\n  \"error-codes\": [\n    \"missing-input-response\"\n  ]\n}";

var results = JsonConvert.DeserializeObject<dynamic>(result);

var r = results.success;

现在我需要知道 r 是真还是假。这是我所拥有的:

if (r.Equals(false))
{
    //action
}

但上面的测试似乎不起作用。在我的情况下,找到 True 或 False 值的正确方法是什么?

【问题讨论】:

  • 试试bool r = results.success;
  • 您是否使用调试器单步执行代码以查看运行时r 是什么?验证它反序列化到的类型和值。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 约翰,感谢您改进问题!

标签: c# json json.net


【解决方案1】:

表达式

JsonConvert.DeserializeObject<dynamic>(result).success

实际上返回一个JValue类型的对象,而不是equalfalse。您需要先强制返回布尔值:

var results = JsonConvert.DeserializeObject<dynamic>(result);
bool r = results.success; // Force "success" to be boolean.
if (!r)
{
    // Action.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多