最近在调试企业购卡功能的时候,有个提交订单接口总是报这个错误。后台的同事感觉也很困惑,然后扯到 报文格式错误,什么逗号隔开的上送的,分号隔开上送的,什么不是json串,我也在很多时候面试的时候,问道字典NSDictionary 和JSON串有什么区别? 举个例子,
//打印出来的字典的类型
Printing description of editDic:
{
aAddTime = "2015-07-21 15:02:10";
aAddress = "\U5728\U4e8e\U5979iyyyu";
aAddressType = 0;
aCityId = 3764;
aCityName = "\U4e0a\U6d77\U5e02";
aConstruction = "";
aCountyId = 4138;
aCountyName = "\U9ec4\U6d66\U533a";
aId = 3206;
aIsDefault = 1;
aMobilePhone = 15225632580;
aPhone = "";
aProfileAccountId = 100000032954;
aProvinceId = 3638;
aProvinceName = "\U4e0a\U6d77";
aRealName = "\U534e\U4e1c";
aUpdateTime = "2015-07-21 15:02:10";
}
转成要上送的 字符串 (很明显,key都是要带引号的)
Printing description of addressStr:
{
"aId" : 3206,
"aCityId" : 3764,
"aProvinceName" : "上海",
"aUpdateTime" : "2015-07-21 15:02:10",
"aAddTime" : "2015-07-21 15:02:10",
"aAddressType" : 0,
"aIsDefault" : true,
"aMobilePhone" : "15225632580",
"aPhone" : "",
"aConstruction" : "",
"aRealName" : "华东",
"aProfileAccountId" : 100000032954,
"aCountyId" : 4138,
"aAddress" : "在于她iyyyu",
"aProvinceId" : 3638,
"aCityName" : "上海市",
"aCountyName" : "黄浦区"
}
仔细观察一下,区别很大的,字典都是分号隔开的,而且key不打引号。
报错的原因就是 其中有个字段是BOOL值,后台是java写的,需要我们前端上送 true和false ,以字符串的形式。他们才能解析,而我们这边表示BOOL值,用1和0;
类型总是错误,整了半天,一个一个参数对照。
想来,其实是个幼稚的问题。