我正在尝试将json布尔值字符串转换为C#等效项。这是我的代码:
string jsonResponseString = "{boolvalue:'true'}";
dynamic jsonResponse = JsonConvert.DeserializeObject(jsonResponseString);
if (jsonResponse.boolvalue == true){
Console.WriteLine("yes it is bool");
}
else{
Console.WriteLine("no it is still a string");
}
不幸的是,布尔值仍然是字符串"true"
,而不是布尔值true
。由于我在运行时不知道要获取哪种对象字符串,因此我想使用DeserializeObject<type>
来避免显式类型转换。我觉得我缺少明显的东西。将字符串布尔值转换为实际布尔值的正确方法是什么?
答案 0 :(得分:5)
您的JSON字符串中的json值实际上是字符串true
。为了将其解析为bool,您应该通过删除引号将其声明为bool:
string jsonResponseString = "{boolvalue: true}";