批量检查操作数据
接口描述
批量删除、修改、锁定数据前,检查所选items是否有对应权限内容,返回可操作条数
请求URI
/item/table/:table_id/check
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
operation | true | 操作内容,update、delete、lock |
item_ids | false | 数据id列表 |
filter | false | 筛选条件 |
view_id | false | 视图ID |
search | false | 搜索关键字 |
update_field_ids | false | 更新字段id |
lock_field_ids | false | 锁定字段id |
响应结果说明
名称 | 说明 |
---|---|
total | 总的数据条数 |
filtered | 可操作的数据条数 |
请求示例
POST /v2/item/table/:table_id/check HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"operation": "update",
"where": {
"and": [
{
"field": 2003,
"query": {
"eq": 200
}
}
]
},
"update": {
"1000": 1,
"10001": "2222"
}
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"total": 10,
"filtered": 10
}
批量创建数据
接口描述
在指定表格下创建多条数据,返回item
实例 数组
请求URI
/item/table/:table_id/create
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
items | true | 数据数组,每一个数组是数据对象,格式同数据创建接口 |
响应结果说明
名称 | 说明 |
---|---|
items | 存储成功的数据对象集合,返回结果参见 item 实例 |
请求示例
POST /v2/item/table/:table_id/create HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"items": [
{
"fields": {
"1000000": 100,
"1000001": "第一条数据",
"1000002": [
590001,
590002
]
}
},
{
"fields": {
"1000000": 200,
"1000001": "第二条数据",
"1000003": [
311189,
311192
]
}
}
]
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"item_id": 1000
},
{
"item_id": 1001
}
]
批量删除数据
接口描述
批量删除数据,用于批量操作。可指定删除,或者根据满足某些筛选条件进行删除
请求URI
/item/table/:table_id/delete
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
where | false | 查询条件 |
响应结果说明
名称 | 说明 |
---|---|
filtered | 删除的数据条数 |
请求示例
POST /v2/item/table/:table_id/delete HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"where": {
"and": [
{
"field": 2003,
"query": {
"eq": 200
}
}
]
},
"item_ids": [
11001,
11002
],
"view_id": 11003,
"search": [
"aaaa",
"bbbb"
]
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"filtered": 10
}
批量修改数据
接口描述
批量更新数据,可指定一些数据,或者满足某些条件的数据,批量同时更新某个字段的值
请求URI
/item/table/:table_id/update
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
item_ids | false | 要更新的指定数据,item_ids与filter至少传一个,优先使用item_ids |
filter | false | 筛选条件 |
data | true | 要更新的数据 |
响应结果说明
名称 | 说明 |
---|---|
success_num | 成功的条数 |
failed_num | 失败的条数 |
total_num | 全部数量 |
请求示例
POST /v2/item/table/:table_id/update HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"item_ids": [
10001,
10002,
10003
],
"filter": {
"and": [
{
"key": "created_by",
"values": [
12343
]
}
]
},
"data": {
"200815": "测试3"
}
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"success_num": 190,
"failed_num": 10,
"total_num": 200
}
创建数据
接口描述
在指定表格下创建一条数据,返回 item
实例
请求URI
/item/table/:table_id
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
fields | true | 数据字段值,详情参考 数据格式 说明 |
响应结果说明
名称 | 说明 |
---|
请求示例
POST /v2/item/table/:table_id HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"fields": {
"1000000": 100,
"1000001": "文本字段内容"
}
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"item_id": 1000,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"created_by_union_id": 3002,
"created_by_wechat_nickname": "微信用户",
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 1000000,
"values": [
{
"value": 100
}
]
},
{
"field_id": 1000001,
"values": [
{
"value": "文本字段内容"
}
]
}
]
}
删除数据
接口描述
删除一条数据
请求URI
/item/:item_id
HTTP Method
DELETE
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
item_id | true | 数据ID |
响应结果说明
名称 | 说明 |
---|
请求示例
DELETE /v2/item/:item_id HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
查询数据
接口描述
通过条件查询数据,返回数据集合
请求URI
/item/table/:table_id/find
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
where | false | 筛选器对象,用于限定统计结果的范围,参考 筛选器结构。 |
search | false | 全文搜索,用于模糊搜索数据。search支持两个key。fields为需要模糊搜索的字段ID数组(包括数据标题title);keywords为需要模糊匹配的关键字数组,关键字之间为或关系。 |
order_by | false | 结果排序对象 |
offset | false | 限定统计结果返回的偏移量 |
limit | false | 限定统计结果返回的数量 |
main_item_id | false | 作为子表所在的主表itemID,和sub_field_id配合使用 |
sub_field_id | false | 作为子表的layout_field_id |
permission_id | false | 多权限查看不同字段时候,权限所对应的id |
select | false | 返回结果中,过滤不需要的字段 |
响应结果说明
名称 | 说明 |
---|---|
total | 根据查询条件查到的数据总条数 |
filtered | 根据查询条件查到的数据总条数中当前用户可以看到的条数 |
items | 每一个item的详情,参考item实例 |
请求示例
POST /v2/item/table/:table_id/find HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"where": {
"and": [
{
"field": 2003,
"query": {
"eq": 200
}
}
]
},
"select": [
1400001
],
"search": {
"fields": [
1400001,
1400002,
1400003
],
"keywords": [
"aa",
"bb"
]
},
"order_by": [
{
"field": 2004,
"sort": "desc"
}
],
"offset": 0,
"limit": 100,
"main_item_id": 1001,
"sub_field_id": 2000,
"permission_id": 11001
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"total": 10,
"filtered": 2,
"items": [
{
"item_id": 3148031,
"table_id": 1200001,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "数据标题1",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"fields": [
{
"field_id": 7210411,
"values": [
{
"value": "文本字段内容1"
}
]
},
{
"field_id": 7210412,
"values": [
{
"user_id": 591101,
"name": "用户3",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
}
]
},
{
"field_id": 7210413,
"values": [
{
"color": "a",
"id": 1,
"status": "active",
"text": "A"
}
]
}
]
},
{
"item_id": 3148032,
"table_id": 1200001,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "数据标题2",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"fields": [
{
"field_id": 7210411,
"values": [
{
"value": "文本字段内容2"
}
]
},
{
"field_id": 7210412,
"values": [
{
"user_id": 591101,
"name": "用户3",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
}
]
},
{
"field_id": 7210413,
"values": [
{
"color": "a",
"id": 2,
"status": "active",
"text": "B"
}
]
}
]
}
]
}
获取数据
接口描述
获取指定数据内容,返回item
实例
请求URI
/item/:item_id
HTTP Method
GET
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
item_id | true | 数据ID |
响应结果说明
名称 | 说明 |
---|
请求示例
GET /v2/item/:item_id HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"item_id": 1000,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"created_by_union_id": 3002,
"created_by_wechat_nickname": "微信用户",
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 4000,
"values": [
{
"value": "文本内容"
}
]
},
{
"field_id": 4001,
"values": [
{
"value": 1000
}
]
},
{
"field_id": 4003,
"values": [
{
"status": "acvtive",
"name": "选项",
"id": 1,
"color": "h"
}
]
},
{
"field_id": 4004,
"values": [
{
"user_id": 5000,
"name": "用户名",
"avatar": {
"file_id": 6002,
"small_link": "",
"medium_link": "",
"large_link": ""
}
}
]
},
{
"field_id": 4005,
"values": [
{
"file_id": 1000,
"name": "文件1",
"created_on": "enable",
"size": 2000,
"created_by": {
"user_id": 3000,
"name": "名字",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"ref_id": 5000,
"ref_type": "item",
"link": {
"source": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"small": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"medium": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"large": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"square": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx"
}
}
]
}
]
}
获取关联数据标签页内部数据
接口描述
获取指定标签页内数据内容,返回item
实例
请求URI
/item/relation
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
source_item_id | true | 标签页内单条数据ID |
field_id | true | 关联字段ID |
table_id | true | 关联表格ID |
响应结果说明
名称 | 说明 |
---|
请求示例
POST /v2/item/relation HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"item_id": 1000,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"created_by_union_id": 3002,
"created_by_wechat_nickname": "微信用户",
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 4000,
"values": [
{
"value": "文本内容"
}
]
},
{
"field_id": 4001,
"values": [
{
"value": 1000
}
]
},
{
"field_id": 4003,
"values": [
{
"status": "acvtive",
"name": "选项",
"id": 1,
"color": "h"
}
]
},
{
"field_id": 4004,
"values": [
{
"user_id": 5000,
"name": "用户名",
"avatar": {
"file_id": 6002,
"small_link": "",
"medium_link": "",
"large_link": ""
}
}
]
},
{
"field_id": 4005,
"values": [
{
"file_id": 1000,
"name": "文件1",
"created_on": "enable",
"size": 2000,
"created_by": {
"user_id": 3000,
"name": "名字",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"ref_id": 5000,
"ref_type": "item",
"link": {
"source": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"small": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"medium": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"large": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"square": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx"
}
}
]
}
]
}
获取关联数据
接口描述
搜索关联字段的可选数据列表,用于用户填写关联时的备选下拉框
请求URI
/item/field/:field_id/search
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
text | false | 搜索的文本 |
not_item_ids | false | 过滤的数据item_id数组 |
limit | false | 返回数据限制 |
table_id | false | 表格ID |
related_fields | false | 关联字段数组 |
order_by | false | 结果排序对象 |
响应结果说明
名称 | 说明 |
---|
请求示例
POST /v2/item/field/:field_id/search HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"text": "搜索文本",
"related_fields": {
"7201454": [
10001
],
"7201455": [
10002
]
},
"not_item_ids": [
100003
],
"limit": 10
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"item_id": 1000,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 4000,
"values": [
{
"value": "搜索文本1"
}
]
}
]
},
{
"item_id": 1001,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 4000,
"values": [
{
"value": "搜索文本2"
}
]
}
]
}
]
数据分组聚合
接口描述
通过统计条件计算指定表格统计结果,返回结果是统计对象的集合
请求URI
/item/table/:table_id/stats
HTTP Method
POST
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
table_id | true | 表格ID |
select | true | 需要返回的字段集合,可以使用指定的聚合函数以及格式化方法 |
where | false | 筛选器对象,用于限定统计结果的范围 |
group_by | false | 统计分组的字段,可以指定格式化方法 |
order_by | false | 分组后对统计结果排序,只能使用select,group_by中设定的字段,并且指定的是as中的别名 |
having | false | 对分组统计结果的筛选,结构与筛选器相同,必须在有group_by的情况下生效,且field字段必须使用 SELECT 中字段的as别名 |
offset | false | 限定统计结果返回的偏移量 |
limit | false | 限定统计结果返回的数量 |
响应结果说明
名称 | 说明 |
---|---|
select | 统计的字段以及统计结果 |
group_by | 分组的字段以及分组函数作用后的结果 |
请求示例
POST /v2/item/table/:table_id/stats HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"select": [
{
"field": "2001",
"aggregation": "sum",
"as": "select1"
},
{
"field": "2002",
"aggregation": "count",
"function": "week",
"as": "select2"
}
],
"where": {
"and": [
{
"field": "2003",
"query": {
"eq": 200
}
}
]
},
"group_by": [
{
"field": "2004",
"function": "year",
"as": "group1"
}
],
"order_by": [
{
"field": "select2",
"sort": "desc"
}
],
"having": {
"and": [
{
"field": "select1",
"query": {
"gte": 100
}
}
]
},
"offset": 0,
"limit": 100
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"select": [
{
"field": "2001",
"aggregation": "sum",
"value": 100
},
{
"field": "2002",
"aggregation": "count",
"value": 10
}
],
"group_by": [
{
"field": "2004",
"function": "week",
"values": [
{
"value": 2016
}
]
},
{
"field": "2006",
"values": [
{
"item_id": 3001,
"title": "数据1"
}
]
}
]
},
{
"select": [
{
"field": "2001",
"aggregation": "sum",
"value": 200
},
{
"field": "2002",
"aggregation": "count",
"value": 5
}
],
"group_by": [
{
"field": "2004",
"function": "month",
"values": [
{
"value": 12
}
]
},
{
"field": "2006",
"values": [
{
"item_id": 3002,
"title": "数据2"
}
]
}
]
}
]
判断标签页的显示
接口描述
获取指定数据内容
请求URI
item/:item_id/sub_check
HTTP Method
GET
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
item_id | true | 数据ID |
响应结果说明
名称 | 说明 |
---|
请求示例
GET /v2item/:item_id/sub_check HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"layout_field_id": 11022,
"type": "sub_table",
"name": "aaa",
"config": {
"table_id": 12001,
"field_id": 12006,
"filter": [],
"display_fields": [
12001,
12002
]
}
},
{
"layout_field_id": 11021,
"type": "sub_table_area",
"name": "aaa",
"config": {
"sub_field_ids": [
11022
]
}
}
]
更新数据
接口描述
更新一条数据的值,返回item
实例
请求URI
/item/:item_id
HTTP Method
PUT
参数说明
参数名称 | 是否必填 | 参数说明 |
---|---|---|
item_id | true | 数据ID |
fields | true | 每一个字段的具体值,不同类型,提交的值不一样 |
响应结果说明
名称 | 说明 |
---|---|
item详细信息 | 更新成功的数据信息,返回结果参见item 实例 |
请求示例
PUT /v2/item/:item_id HTTP/1.1
Host: api.huoban.com
Content-Type: application/json
Authorization: Bearer {YOUR ACCESS TOKEN}
{
"fields": {
"1000000": 100,
"1000001": "今天是个好日子",
"1000002": [
590001,
590002
],
"1000003": [
311189,
311192
]
}
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"item_id": 1000,
"table_id": 2000,
"created_on": "2015-11-11 11:11:11",
"updated_on": "2015-11-11 11:11:11",
"title": "item标题",
"created_by": {
"name": "用户名1",
"user_id": 3000,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"update_by": {
"name": "用户名1",
"user_id": 3001,
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"created_by_union_id": 3002,
"created_by_wechat_nickname": "微信用户",
"followed": true,
"last_activity_on": "2016-07-18 17:57:44",
"rights": [
"comment_create",
"view",
"delete",
"modify"
],
"fields": [
{
"field_id": 4000,
"values": [
{
"value": "文本内容"
}
]
},
{
"field_id": 4001,
"values": [
{
"value": 111111111
}
]
},
{
"field_id": 4002,
"values": [
{
"value": null,
"error": 2333
}
]
},
{
"field_id": 4003,
"values": [
{
"status": "acvtive",
"name": "选项",
"id": 1,
"color": "h"
}
]
},
{
"field_id": 4004,
"values": [
{
"user_id": 5000,
"name": "用户名",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
}
]
},
{
"field_id": 4005,
"values": [
{
"file_id": 1000,
"name": "文件1",
"created_on": "enable",
"size": 2000,
"created_by": {
"user_id": 3000,
"name": "名字",
"avatar": "http:\/\/f2.huoban.com\/30000\/user_avatar\/40000\/xxx"
},
"ref_id": 5000,
"ref_type": "item",
"link": {
"source": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"small": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"medium": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"large": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx",
"square": "http:\/\/hb-v4-attachment-oss.huoban.com\/xxx"
}
}
]
}
]
}