首页 > 解决方案 > JsonConvert.DeserializeObject 布尔值始终为假

问题描述

为什么下面的代码会返回falsefor showStatusbar

我正在尝试使用JsonConvert.DeserializeObject来转换 Json 文件。

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            string jsonData = "{\"Settings\": [{\"networkDeviceDiscovery\": \"supported\"},{\"showStatusbar\":true}]}";

            Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(jsonData);

            Console.WriteLine("NetworkDeviceDiscovery: {0}", myDeserializedClass.Settings[0].NetworkDeviceDiscovery);
            Console.WriteLine("ShowStatusbar: {0}", myDeserializedClass.Settings[0].ShowStatusbar);
        }
    }

    public class Setting
    {
        [JsonProperty("networkDeviceDiscovery")]
        public string NetworkDeviceDiscovery;

        [JsonProperty("showStatusbar")]
        public bool ShowStatusbar;
    }

    public class Root
    {
        [JsonProperty("Settings")]
        public List<Setting> Settings;
    }
}

标签: c#json.net

解决方案


我觉得你的牙套弄错了。尝试这个:

string jsonData = "{\"Settings\": [{\"networkDeviceDiscovery\": \"supported\",\"showStatusbar\":true}]}";

推荐阅读