背景
最近在做一个一体机的APP,跟某工程师做接口的对接,发现接口返回的数据极为混乱,虽说都是Json串,但是给客户端解析数据带来了极大的困难,希望能给做接口的看看这篇文章,引以为戒。
1.data数据返回不规范
不规范:
"data": [
id: "1"
name: “TCL电视"
]
规范:
"data": {
id: "1"
name: “TCL电视"
}
2.列表返回不规范
不规范:
"goods_list": {
"1":{
id:"1"
name:"TCL电视"
},
"2":{
id:"1"
name:"TCL电视"
}
}
不规范:
"goods_list": [
[
id:"1"
name:"TCL电视"
],
[
id:"1"
name:"TCL电视"
]
]
不规范:
"goods_list": {
"颜色:::冰河银|||版本:::全网通":{
id:"1"
name:"TCL电视"
},
"颜色:::冰河银|||版本:::全网通":{
id:"1"
name:"TCL电视"
}
}
规范:
"goods_list": [
{
id:”1"
name:"TCL电视"
},
{
id:"1"
name:"TCL电视"
}
]
3.返回的价格是String或int或null
"direct_price": "1407.00"
"income": 0
"freight_fee": null
"price": ""
4.没有分key和value
不规范:
"goods_spec_img": {
"颜色:::冰河银": "http:\/\/img.xxx.cn\/image\/goods\/2016\/1121\/583288410810d.png"
}
规范:
"goods_spec_img": {
"auth_image_url": "http:\/\/img.xxx.cn\/image\/goods\/2016\/1121\/583288410810d.png",
"shop_name": "xx商城"
}
5.数据重复
"goods_list": {
"1": {
"shop_id": "1",
"shop_name": “xx商城"
"goods_list": {
"169": {
"shop_id": "1",
"shop_name": “xx商城"
"product_id": "169",
}
}
}
总结
JSON有规定好的数据格式,为什么我们不去遵守呢?我知道某些数据可能考虑到数据量太大的问题而使用特殊的格式,但是其他数据量小的应该统一一种格式吧?
- 对象(object):一个对象以”{“开始,并以”}“结束。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用”,“分区。
- 名称/值(collection):名称和值之间使用”:“隔开,一般的形式是:
{name:value}
一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布尔值,一个有序列表,或者一个null值。 - 值的有序列表(Array):一个或者多个值用,分区后,使用”[,]“括起来就形成了这样的列表,形如:` [collection,
- 字符串:以”“括起来的一串字符。
- 数值:一系列0-9的数字组合,可以为负数或者小数。还可以用e或者E表示为指数形式。
- 布尔值:表示为true或者false。