WPF/C#使用Newtonsoft.Json修改JSON布尔值前如何添加判断条件
实现方案
你只需要在修改值前先读取JToken的布尔值做状态校验即可,以下是修改后的完整代码:
private void Activate_Click(object sender, RoutedEventArgs e) { string myfile = "myfile.json"; if (File.Exists(myfile)) { string jsonString = File.ReadAllText(myfile); JObject jObject = JsonConvert.DeserializeObject(jsonString) as JObject; JToken jToken = jObject.SelectToken("option1"); // 新增空值判断,避免目标配置项不存在时报错 if (jToken == null) { MessageBox.Show("目标配置项不存在"); return; } // 新增布尔值判断逻辑 if (jToken.Value<bool>()) { MessageBox.Show("该值已经为true"); return; } jToken.Replace(true); string updatedJsonString = jObject.ToString(); File.WriteAllText(myfile, updatedJsonString); MessageBox.Show("Option true"); } else { MsgError(); } }
补充说明
- 禁用按钮的逻辑可以直接复用该框架,只需将判断条件改为
!jToken.Value<bool>()、替换值改为false、提示文案调整为对应内容即可 - 若需要调整输出JSON的缩进格式,可在
jObject.ToString()中传入参数:jObject.ToString(Formatting.None)表示输出压缩无缩进的JSON,默认不传参数即为带缩进格式化输出
内容的提问来源于stack exchange,提问作者Maenhir
相关产品推荐
相关产品推荐

