反序列化布尔类型的对象时出错,值“不能解析为布尔类型”?

时间:2019-08-07 06:46:25

标签: c# .net json wcf

我有一个WCF服务,其中有一个数据成员

order = [{"orderID":"test1","orderPacked":"Yes","orderSubmitted":"Yes","orderVerified":"Yes","stage":1}]

combined = [
   {"barcode":"95590","name":"Ash","quantity":6,"orderID":"test1"},
   {"barcode":"95591","name":"Beat","quantity":6,"orderID":"test1"},
   {"barcode":"95592","name":"Cat","quantity":6,"orderID":"test1"},
   {"barcode":"95593","name":"Dog","quantity":6,"orderID":"test2"},
   {"barcode":"95594","name":"Scar","quantity":6,"orderID":"test2"}
   ]


def joinjson(repl, tobeCombined):
  newarr = []
  for data in tobeCombined:
    replData = getOrderData(repl,data['orderID'])
    if replData is not None:
      data.update(replData)
    newarr.append(data)

  return newarr

def getOrderData(order, orderID):
  for data in order:
    print("Data OrderID : ",data['orderID'])
    if data['orderID'] == orderID:
      return data



print(joinjson(order,combined))

在其中一个DataContracts中。当我调用此服务并为变量IsCallToPhone传递“”时,出现反序列化错误。我知道不能将空值传递给Bool,但是有什么方法可以使它接受该值并为这种情况指定默认的false。

这是我的错误

    [DataMember(Name = "callToPhone")]
    public bool IsCallToPhone { get; set; }

}

我尝试过的工作-我尝试通过将变量设置为可为空的类型来实现。

    {
"message": "There was an error deserializing the object of type SciGame.CMP.API.Contracts.Player.CreatePlayerRequest. The value '' cannot be parsed as the type 'Boolean'."

还尝试实现getter和setter属性

     public bool? IsCallToPhone { get; set; }

这些都不起作用,我在做什么错

0 个答案:

没有答案