繁体   English   中英

如何在C#中反序列化带有方括号的简单Json?

[英]How can I deserialize a simple Json with square brackets in c#?

我不知道自己在做什么错,但这是我要阅读的杰森:

[{
    "object":
    {
        "Weigh": 4000
    }
}]

我真的不知道为什么需要“对象”:零件,但是如果删除它,代码将无法工作。

这是我的API Rest:

        [HttpPost]
        public string GetMixerTime([FromBody]JsonObject<WeighMix>[] json)
        {

            IList<WeighMix> listawm = JsonConvert.DeserializeObject<List<WeighMix>>(json.ToString());

            return listawm.ToString();
        }

WeighMix类:

    public class WeighMix
    {
        public double Weigh { get; set; }

        public WeighMix()
        {
        }

        public WeighMix(double weigh)
        {
            Weigh = weigh;
        }
    }

非常感谢。

方括号表示Json中的数组。 您的Json是A型数组(例如A),它具有一个称为B型对象的属性(B与WeighMix的定义匹配)。

您需要将您的类声明更改为

public class RootObject
{
    [JsonProperty("object")]
    public WeighMix Object{get;set;}
}

// Define other methods and classes here
public class WeighMix
    {
        public double Weigh { get; set; }

        public WeighMix()
        {
        }

        public WeighMix(double weigh)
        {
            Weigh = weigh;
        }
    }

您现在可以使用

var result = JsonConvert.DeserializeObject<List<RootObject>>(json);

样本输入

var json = @"[ { 'object': { 'weigh': 4000.0 }, 'json': '{\'Weigh\':4000.0}' } ]";

样本输出

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM