Swift中如何构造Post请求Body所需的指定JSON结构
正确构造目标JSON结构的Swift代码
你当前代码的问题在于层级结构没对应上:目标JSON里,requests数组的每个元素是一个同时包含image和features的字典,而features本身又是一个数组,里面才是带有type的字典。你现在把image和type拆成了requests数组里的两个独立元素,自然和目标结构不符。
下面是清晰的分步构造方式:
// 构造features数组内的单个配置项 let textDetectionFeature = ["type": "TEXT_DETECTION"] // 包装成features数组 let featuresArray = [textDetectionFeature] // 构造包含base64内容的image字典 let imageDict = ["content": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z"] // 组装成单个请求项(同时包含image和features) let singleRequest = ["image": imageDict, "features": featuresArray] // 最终组装成完整的请求结构 let finalRequestDict: [String: Any] = ["requests": [singleRequest]]
如果喜欢更紧凑的写法,也可以合并为嵌套结构:
let finalRequestDict: [String: Any] = [ "requests": [ [ "image": ["content": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z"], "features": [["type": "TEXT_DETECTION"]] ] ] ]
这样生成的JSON结构就完全匹配你想要的目标格式了:
{
"requests": [
{
"image": {
"content": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z"
},
"features": [
{
"type": "TEXT_DETECTION"
}
]
}
]
}
内容的提问来源于stack exchange,提问作者kMose
相关产品推荐
相关产品推荐

