test_a 云对象
module.exports = {
async demo() {
const code = await uniCloud.importObject('test_b').get_code();
console.log(code);
},
}
test_b 云对象
module.exports = {
get_code() {
return '4KDEDD';
},
}
将云对象上传到支付宝云服务空间
客户端调用
uniCloud.importObject('test_a').demo();
云对象报错日志
2026-04-11 14:53:15.754 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] reserve_instance_start: reserveFunctionInstance start
2026-04-11 14:53:15.758 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] reserve_instance_end: reserveFunctionInstance success; instanceName=13cada85-80d7-4db2-ae27-bb7d58e52048 ip=10.75.76.227
2026-04-11 14:53:15.758 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] call_function_start: call function start
2026-04-11 14:53:16.126 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] user_code_execution: 13cada85-80d7-4db2-ae27-bb7d58e52048,version: aa9bc0f0
2026-04-11 14:53:16.625 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] sdk_request: 13cada85-80d7-4db2-ae27-bb7d58e52048,mode: function, path: /functions/invokeFunction, error, status: 200, cost: 439.97
2026-04-11 14:53:16.626 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] sdk_request_error: 13cada85-80d7-4db2-ae27-bb7d58e52048,SyntaxError [JSONResponseFormatError]: Unexpected token K in JSON at position 1 (data json format: "4KDEDD")
at JSON.parse (<anonymous>)
at parseJSON (/var/task/code/node_modules/@alipay/faas-server-sdk/node_modules/urllib/dist/commonjs/utils.js:39:21)
at #requestInternal (/var/task/code/node_modules/@alipay/faas-server-sdk/node_modules/urllib/dist/commonjs/HttpClient.js:577:57)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async HttpClient.request (/var/task/code/node_modules/@alipay/faas-server-sdk/node_modules/urllib/dist/commonjs/HttpClient.js:158:16)
at async request (/var/task/code/node_modules/@alipay/faas-server-sdk/node_modules/urllib/dist/commonjs/index.js:77:12)
at async callMiddleware (/var/task/code/node_modules/@alipay/faas-server-sdk/lib/requester/middlewares/call_middleware.js:1:526)
at async /var/task/code/node_modules/@alipay/faas-server-sdk/lib/requester/middlewares/sign_middleware_factory.js:1:1299
at async /var/task/code/node_modules/@alipay/faas-server-sdk/lib/requester/middlewares/init_call_functiongateway_headers_middleware.js:1:381
at async /var/task/code/node_modules/@alipay/faas-server-sdk/lib/requester/middlewares/body_middleware.js:1:748 {
opaque: undefined,
status: 200,
headers: {
'content-type': 'text/plain',
'x-faas-from-start': '1',
'x-http-response-code': '200',
'x-trace-id': '8c4c9e80-0a90-434d-9de1-7d44ad6c16c1',
date: 'Sat, 11 Apr 2026 06:53:16 GMT',
'content-length': '6'
},
res: {
status: 200,
statusCode: 200,
statusText: 'OK',
statusMessage: 'OK',
headers: {
'content-type': 'text/plain',
'x-faas-from-start': '1',
'x-http-response-code': '200',
'x-trace-id': '8c4c9e80-0a90-434d-9de1-7d44ad6c16c1',
date: 'Sat, 11 Apr 2026 06:53:16 GMT',
'content-length': '6'
},
size: 6,
aborted: false,
rt: 439.97,
keepAliveSocket: true,
requestUrls: [ 'http://10.75.96.205:8081/functions/invokeFunction' ],
timing: {
queuing: 3.534,
connected: 8.519,
requestHeadersSent: 9.073,
requestSent: 9.617,
waiting: 437.878,
contentDownload: 438.859
},
socket: {
id: 2,
localAddress: '172.17.3.34',
localPort: 32768,
remoteAddress: '10.75.96.205',
remotePort: 8081,
remoteFamily: 'IPv4',
bytesWritten: 1119,
bytesRead: 206,
handledRequests: 1,
handledResponses: 1,
connectedTime: 2026-04-11T06:53:16.194Z
},
retries: 0,
socketErrorRetries: 0
},
socket: {
id: 2,
localAddress: '172.17.3.34',
localPort: 32768,
remoteAddress: '10.75.96.205',
remotePort: 8081,
remoteFamily: 'IPv4',
bytesWritten: 1119,
bytesRead: 206,
handledRequests: 1,
handledResponses: 1,
connectedTime: 2026-04-11T06:53:16.194Z
}
}
2026-04-11 14:53:16.635 [test_a][USER][WARN][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] execute: 13cada85-80d7-4db2-ae27-bb7d58e52048,Error: JSONResponseFormatError: Unexpected token K in JSON at position 1 (data json format: "4KDEDD")
at /var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:57549
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Proxy.<anonymous> (/var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:15397)
at async i.demo (/var/task/code/index.obj.js:5:16)
at async We (/var/task/code/index.js:2:86679)
at async Je (/var/task/code/index.js:2:86929)
at async FetchEventPearl2.handleRequest (/var/task/index.js:62628:17)
at async Container.dispatchHttpRequest (/var/task/index.js:68654:17)
at async Container.dispatch (/var/task/index.js:68635:14)
at async /var/task/index.js:68094:30
2026-04-11 14:53:16.635 [test_a][SYSTEM][INFO][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] user_code_execute_exception: 13cada85-80d7-4db2-ae27-bb7d58e52048,w [Error]: JSONResponseFormatError: Unexpected token K in JSON at position 1 (data json format: "4KDEDD")
at /var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:57549
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Proxy.<anonymous> (/var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:15397)
at async i.demo (/var/task/code/index.obj.js:5:16)
at async We (/var/task/code/index.js:2:86679)
at async Je (/var/task/code/index.js:2:86929)
at async FetchEventPearl2.handleRequest (/var/task/index.js:62628:17)
at async Container.dispatchHttpRequest (/var/task/index.js:68654:17)
at async Container.dispatch (/var/task/index.js:68635:14)
at async /var/task/index.js:68094:30 {
errMsg: 'JSONResponseFormatError: Unexpected token K in JSON at position 1 (data json format: "4KDEDD")',
errCode: -1,
code: -1,
errSubject: undefined,
forceReturn: false,
cause: undefined
}
2026-04-11 14:53:16.637 [test_a][SYSTEM][ERROR][8c4c9e80-0a90-434d-9de1-7d44ad6c16c1] call_function_end: call function failed; err: {"code":"400","message":"error: JSONResponseFormatError: Unexpected token K in JSON at position 1 (data json format: \"4KDEDD\"). stack: Error: JSONResponseFormatError: Unexpected token K in JSON at position 1 (data json format: \"4KDEDD\")\n at /var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:57549\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Proxy.<anonymous> (/var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js:1:15397)\n at async i.demo (/var/task/code/index.obj.js:5:16)\n at async We (/var/task/code/index.js:2:86679)\n at async Je (/var/task/code/index.js:2:86929)\n at async FetchEventPearl2.handleRequest (/var/task/index.js:62628:17)\n at async Container.dispatchHttpRequest (/var/task/index.js:68654:17)\n at async Container.dispatch (/var/task/index.js:68635:14)\n at async /var/task/index.js:68094:30"}
3 个回复
Ask小助手
感谢提交这个详细的bug反馈。以下是我作为DCloud官方人员对该反馈的评审意见:
1. 反馈内容完整性分析
优点:
"4KDEDD"),有助于定位问题需要补充的信息:
return "4KDEDD"还是return inviteCode),也没有提供A云对象调用B云对象的代码建议补充:
2. Bug成立性分析
从知识库中关于云函数返回格式的文档来看,云函数(包括云对象)的返回数据通常会被包装在JSON响应体中。错误信息
JSONResponseFormatError表明支付宝云的runtime在尝试将云对象返回值序列化或反序列化时,对纯字符串格式的处理存在问题。关键判断:
/var/task/code/@dcloudio/serverless/lib/alipay/uni-cloud.js,这是支付宝云特定的运行时处理逻辑结论: 这是一个平台兼容性Bug。虽然最佳实践建议返回JSON对象(如
return { code: "4KDEDD" }),但框架应当兼容直接返回基础类型(字符串、数字等)的情况,或者在支付宝云上有明确的错误提示和文档说明。3. 临时解决方案
在官方修复前,建议将返回的字符串包装为对象:
4. 后续处理建议
建议将该问题提交到DCloud官方issue系统,并附上:
这是一个有效的平台兼容性bug反馈,需要开发团队针对支付宝云runtime的JSON序列化处理进行修复。
DCloud_uniCloud_CRL
接口返回的是字符串吗?
DCloud_uniCloud_CRL
贴下 passport.js:118:25 这个位置代码
2026-04-07 11:41
追梦随想 (作者)
这里是调用了另一个云对象https://ext.dcloud.net.cn/plugin?name=dm-user-id-co,而这个云对象是直接复制uni-id-co内部的一个方法,返回的就是一个邀请码字符串,在阿里云没问题,支付宝云就不行
2026-04-07 17:42
DCloud_uniCloud_CRL
回复 追梦随想: 代码中有处理返回值的地方吗?支付宝云不存在返回字符串报错的问题。
2026-04-08 13:40
追梦随想 (作者)
回复 DCloud_uniCloud_CRL: 没有的,直接
return '4KDEDD';2026-04-08 20:38
DCloud_uniCloud_CRL
回复 追梦随想: 发一个最小复现demo吧,我这边没有复现你这个问题。
2026-04-09 10:40
追梦随想 (作者)
回复 DCloud_uniCloud_CRL: 发了
2026-04-11 15:00
追梦随想 (作者)
test_a 云对象
test_b 云对象
将云对象上传到
支付宝云服务空间客户端调用
云对象报错日志
DCloud_uniCloud_CRL
支付宝云云端SDK限制,只能返回JSON格式数据,非JSON格式会解析失败。
2026-04-13 16:39
要回复问题请先登录或注册
公告
更多>相关问题