Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#wcf服务使用json.net反序列化数组的json数组_Wcf_Air_Json.net_Deserialization - Fatal编程技术网

c#wcf服务使用json.net反序列化数组的json数组

c#wcf服务使用json.net反序列化数组的json数组,wcf,air,json.net,deserialization,Wcf,Air,Json.net,Deserialization,我正在开发一个移动空中应用程序。对于通信,我使用wcf服务。 现在我的问题是,我正在尝试使用json.net反序列化数组。子数组是类型化的。 因此,我在移动端的课程如下: package Model.VO.PHCDATA { [Bindable] [RemoteClass(alias="Model.PCHModel.VODadosPHC")] public class VoBi { private var _BIstamp:String;

我正在开发一个移动空中应用程序。对于通信,我使用wcf服务。 现在我的问题是,我正在尝试使用json.net反序列化数组。子数组是类型化的。 因此,我在移动端的课程如下:

package Model.VO.PHCDATA
{
    [Bindable]
    [RemoteClass(alias="Model.PCHModel.VODadosPHC")]
    public class VoBi
    {
        private var _BIstamp:String;
        private var _ivaincl:Number;
        private var _vendnm:String;
        private var _vendedor:Number;
        private var _iva:Number;
        private var _lordem:Number;
        private var _tabiva:Number;
        private var _txiva:Number;
        private var _familia:String;            
        ....

    }
}
    [DataContract(Name = "VoBi")]
    public class VoBi
    {
        [DataMember(IsRequired = true, Name = "BIstamp", Order = 0)]
        public string BIstamp { get; set; }
        [DataMember(IsRequired = true, Name = "ivaincl", Order = 1)]
        public decimal ivaincl { get; set; }
        [DataMember(IsRequired = true, Name = "vendnm", Order = 2)]
        public string vendnm { get; set; }
        [DataMember(IsRequired = true, Name = "vendedor", Order = 3)]
        public decimal vendedor { get; set; }
                   ....

    }
另一个是:

package Model.VO.PHCDATA
{
    [Bindable]
    [RemoteClass(alias="Model.PCHModel.VODadosPHC")]

    public class VOBO
    {
        private var _BOstamp:String;
        private var _vendedor:Number;
        private var _vendnm:String;

        ....
    }
}
相应的c类如下所示:

package Model.VO.PHCDATA
{
    [Bindable]
    [RemoteClass(alias="Model.PCHModel.VODadosPHC")]
    public class VoBi
    {
        private var _BIstamp:String;
        private var _ivaincl:Number;
        private var _vendnm:String;
        private var _vendedor:Number;
        private var _iva:Number;
        private var _lordem:Number;
        private var _tabiva:Number;
        private var _txiva:Number;
        private var _familia:String;            
        ....

    }
}
    [DataContract(Name = "VoBi")]
    public class VoBi
    {
        [DataMember(IsRequired = true, Name = "BIstamp", Order = 0)]
        public string BIstamp { get; set; }
        [DataMember(IsRequired = true, Name = "ivaincl", Order = 1)]
        public decimal ivaincl { get; set; }
        [DataMember(IsRequired = true, Name = "vendnm", Order = 2)]
        public string vendnm { get; set; }
        [DataMember(IsRequired = true, Name = "vendedor", Order = 3)]
        public decimal vendedor { get; set; }
                   ....

    }
另一个:

 [DataContract(Name = "VOBO")]
    public class VOBO
    {
        [DataMember(IsRequired = true, Name = "BOstamp", Order = 0)]
        public string BOstamp { get; set; }
        [DataMember(IsRequired = true, Name = "vendedor", Order = 1)]
        public decimal vendedor { get; set; }
        [DataMember(IsRequired = true, Name = "vendnm", Order = 2)]
        public string vendnm { get; set; }
        [DataMember(IsRequired = true, Name = "nmdos", Order = 3)]
        public string nmdos { get; set; }
        [DataMember(IsRequired = true, Name = "ndos", Order = 4)]
        public decimal ndos { get; set; }

        .....

    }
要发送到服务器的对应json字符串如下:

{
    "DADOSBI": [
        {
            "edebito": 0,
            "desconto": 92.121,
            "vendedor": 0,
            "desc2": 222.343,
            "iva": 23,
            "ettdeb": 123.555,
            "lordem": 12,
            "tabiva": 2.1,
           ....
        },
        {
            "edebito": 0,
            "desconto": 92.121,
            "vendedor": 1,
            "desc2": 222.343,
            "iva": 23,
            "ettdeb": 123.555,
            "lordem": 12,
            "tabiva": 2.1,
           ....
        }
    ],
    "DADOSBO": [
        {
            "estab": 123.88,
            "etotaldeb": 123,
            "obs": "",
            "vendedor": 0,
            "statuspda": "qqqqqqqqqqqq",
            "ebo_2tvall": 12,
            "ebo_2tdes1": 12.11,
            ...
        },
        {
            "estab": 123.88,
            "etotaldeb": 123,
            "obs": "",
            "vendedor": 1,
            "statuspda": "qqqqqqqqqqqq",
            "ebo_2tvall": 12,
           ....
        }
    ]
}
我该怎么处理?我是否使用json.net CustomCreationConverter反序列化数据?然后获取填充了我提到的类的相应数组,或者我使用另一种方法? 我们将不胜感激。
提前感谢。

假设您的顶级产品如下所示(如果您没有,那么创建一个,如果它不那么费力,否则我们需要一个更好的解决方案)

内部类TopClass
{
[JsonProperty(“DADOSBI”)]
公共IList VOBiList{get;set;}
[JsonProperty(“DADOSBO”)]
公共IList VOBOList{get;set;}
}
然后使用

var topClass = JsonConvert.DeserializeObject<TopClass>( json);
var topClass=JsonConvert.DeserializeObject(json);

如果这不是您要寻找的答案,请使用更多信息更新问题

如果您可以提供更多信息,例如如何序列化它,会更好?您是否尝试过
System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(yourStream)
因为我在示例中没有看到任何类型化数组(…子数组是类型化的…),您能否用更少的属性示例更新该问题。抱歉,响应太晚了。我一直在摆弄服务的其他方面。但是keyr,它正在工作,数据正在被反序列化。谢谢你的帮助