在 Swift 中根据给定数据创建 JSON

问题描述 投票:0回答:1

我想执行POST URLRequest,但首先我需要创建请求正文。 身体应该是这样的:

{
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": <mutableStringValue>
        },
        {
          "type": "image_url",
          "image_url": {
            "url": <mutableStringValue>
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

我无法将其硬核为

.json
文件,因为参数
"text"
(在第一个
"type"
下)和
"image_url"
(在第二个
"type"
下)作为函数参数给出。 我不知道如何处理两个
"type"
键。

到目前为止,我想出了这样的事情:

struct ImageInputRequestBody: Codable {
        let model: String = "gpt-4-vision-preview"
        let messages: [Message]
        let maxTokens: Int = 300
        enum CodingKeys: String, CodingKey {
            case model, messages
            case maxTokens = "max_tokens"
        }
        
        struct Message: Codable {
            let role: String
            let content: [Content]
        }
        struct Content: Codable {
            let type: String
            let text: String?
        }
    }

但这里我缺少第二个

"type"
"image_url"
内容

ios json swift codable
1个回答
0
投票

你可以尝试这样简单的事情:

 struct Content: Codable {
     let type: String
     let text: String?
     let image_url: ImgUrl?
 }
 
 struct ImgUrl: Codable {
     let url: String
 }

当 json 数据中存在

text
时,
image_url
将 是
nil
,反之亦然。在你的代码中你总是需要检查 无论如何都不为零。

© www.soinside.com 2019 - 2024. All rights reserved.