公司系统与其他系统交互或者说前端与后端交互,有时候会出现数据格式与目标格式不一致。如果按照常规处理是比较麻烦的,这时候不要急,可以先分析数据,看看是不是可以改造。比如加一些或减掉一些。下面这个就是加花括号。
var format_str_sku = "{" + string.Format("'sku_list':{0}", str_sku_list) + "}";
var _skus = JsonConvert.DeserializeObject<skus>(format_str_sku);
这样之后就可以序列化了。比起判断是强很多的。
还有一些需要传递数组的,如果用代码逻辑实现是真的很麻烦,但是利用字符串一些方法,那就轻轻实现。如下
string format_sub_orderid = string.Format("[{0}]", _s);
var res = _taobaoService.QueryPurchaseOrders(null, string.Format("[{0}]", purchase.PurchaseId));
还有一些查询,检测的如下:
string str_images = dic_data["pic_urls"] != null ? dic_data["pic_urls"].ToString().TrimStart('[').TrimEnd(']') : "";
if (!string.IsNullOrWhiteSpace(str_images) && str_images.Contains(","))
{
string[] arr_images = str_images.Split(',');
if (arr_images.Length > 0)
__image = arr_images[0].Replace("\r\n", "").Replace("\"", "").Trim();
}
if (!string.IsNullOrWhiteSpace(__image))
current_order.Image_url = __image;
总结一下,就是在面对数据格式不满足要求的时候,我们要灵活多变,不要一根筋,想什么通用方法。能解决问题就是好方法,技巧。