value null at missing of type org.json.JSONObject$1 cannot be converted to JSONArray
missing=null
d89a027
completed
missing_json
null
"missing":null
append([]string(nil), request.Missing...)
getJSONArray("missing")
gitea.env
[]
missing
optJSONArray("missing")?.strings().orEmpty()
非 UI、恢复既有 API 数组语义的缺陷,不需要原型。依据为任务 113 结构化数据库与服务层响应;未读取或保存控件树/整屏截图。
"missing":[]
无长期文档影响:字段仍是既有 missing 数组,只修复实现偏离;不更新 Wiki。
0.9.35
go test ./app/goauto/task
go test ./app/goauto/apprelease ./app/goauto/task
go test ./app/goauto/...
android\\gradlew.bat testDebugUnitTest --tests "cn.ilapage.goauto.agent.AgentApiClientJsonTest"
android\\gradlew.bat testDebugUnitTest assembleDebug
git diff --check
627AF14F28A2DD02D3E78E715B52DF6DC8C60CE943AB4314543E13B61ABC524F
60f01f73f0736e1e59c4bd4554a665ec024c0f43
origin/main
3B65BD02H7F00000
versionName=0.9.35
versionCode=48
missing:null
更正上一条回写中的完整提交哈希:60f01f744765c30f796a5651eed4853a4cfacc66。已再次核对本地 HEAD 与远端 origin/main 完全一致。
60f01f744765c30f796a5651eed4853a4cfacc66
No dependencies set.
The note is not visible to the blocked user.
原始需求摘要
value null at missing of type org.json.JSONObject$1 cannot be converted to JSONArray,确认分析后要求建工单并实施。missing=null任务均能正常查看详情。当前事实与根因
d89a027,Agent 0.9.34(47)。completed,包含 2 个规格维度、5 个颜色价格、20 个 SKU,无采集错误,数据本身完整。missing_json实际保存字符串null;详情服务返回 JSON"missing":null。append([]string(nil), request.Missing...),空输入被退化为 nil;持久化后成为null。null反序列化到已初始化空切片,又变回 nil。getJSONArray("missing"),遇到 JSON null 时抛出类型转换异常。gitea.env读取。目标
[],服务端详情必须稳定返回数组。null和异常空值,现有任务 113 无需修改数据即可读取。missing均安全解析,默认空列表。非目标
前置依赖与并行性
方案
missing时显式创建长度为 0 的非 nil 切片。optJSONArray("missing")?.strings().orEmpty()防御旧服务端响应。设计证据
非 UI、恢复既有 API 数组语义的缺陷,不需要原型。依据为任务 113 结构化数据库与服务层响应;未读取或保存控件树/整屏截图。
验收标准
missing持久化为[],详情 JSON 返回"missing":[]。missing_json为 SQL NULL、null或无效 JSON 时详情仍返回空数组且不崩溃。风险
文档影响
无长期文档影响:字段仍是既有
missing数组,只修复实现偏离;不更新 Wiki。实施完成,待验收
最终方案与差异
missing,新结果持久化为[],不再退化为null。null和无效历史 JSON,稳定输出非 nil 空数组;非空缺失项保持原值。missing数组、JSON null 或字段缺失统一安全解析,旧服务端响应不再导致详情页崩溃。0.9.35(versionCode 48),同步更新仓库 APK 版本绑定测试。验证
go test ./app/goauto/task:通过。go test ./app/goauto/apprelease ./app/goauto/task:通过。go test ./app/goauto/...:通过。android\\gradlew.bat testDebugUnitTest --tests "cn.ilapage.goauto.agent.AgentApiClientJsonTest":通过。android\\gradlew.bat testDebugUnitTest assembleDebug:通过。git diff --check/ 暂存差异检查:通过。627AF14F28A2DD02D3E78E715B52DF6DC8C60CE943AB4314543E13B61ABC524F。提交与推送
60f01f73f0736e1e59c4bd4554a665ec024c0f43origin/main。真机安装
3B65BD02H7F00000,安装成功并保留应用数据。versionName=0.9.35、versionCode=48。未执行与文档影响
missing:null的兼容,服务端新持久化语义将在正常部署该提交后生效。更正上一条回写中的完整提交哈希:
60f01f744765c30f796a5651eed4853a4cfacc66。已再次核对本地 HEAD 与远端origin/main完全一致。