将文本文件的内容作为JSON传递到httpBody

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

我正在尝试创建一个程序,该程序可以将文本文件的内容快速传递给http POST请求。我正在存储用于文本文件中运行的API查询的过滤器,并希望将它们作为JSON对象(无论如何,我认为是)传递给请求中的request.httpBody。我在将txt文件转换为httpBody可以接受的数据(json对象?)时遇到问题。

这里是一个txt文件示例。使用OR逻辑将同一阵列中的过滤器组合在一起。过滤器数组使用AND逻辑合并,因此我必须考虑两种情况。:

zero_RC.txt

{
    "query": "Zero Response Code",
    "filters": [
    {
        "filters": [
        {
            "field": "inventoryState",
            "value": "CONFIRMED",
            "type": "IN"
        },
        {
            "field": "responseCode",
            "value": "0",
            "type": "EQ"
        },
        {
            "field": "exception",
            "value": "DNS lookup failed",
            "type": "EQ"
        }]
    }]
}

这是我要努力工作的障碍。我相信我需要一个JSON对象,并且可以在下面的请求中将其传递给httpBody。但是,这仍然是初学者。

    // get JSON, somehow
    let file = Bundle.main.path(forResource: "zero_RC", ofType: "txt")
    let jsonData = file!.data(using: .utf8)

    let JSON = try! JSONSerialization.data(withJSONObject: jsonData as Any, options: [])

    if JSONSerialization.isValidJSONObject(JSON) {
        print("Oh Yeah")
    } else {
        print("Nah bud, that ain't working")
    }


    // make the request
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Accept")
    request.addValue("Basic \(loginData!)", forHTTPHeaderField: "Authorization")
    request.httpBody = JSON

因此,我是否要获取字符串并转换为数据,然后转换为JSON对象?我对如何最好地做到这一点感到非常困惑。我进行了搜索,发现所有内容都是对文章的分析,但并不能完全帮助您。

提前感谢。

我正在尝试创建一个程序,该程序可以将文本文件的内容快速传递给http POST请求。我正在为文本文件中正在运行的API查询存储过滤器,并希望...

swift
1个回答
0
投票

这里是解决方案,首先我们将您的json文件解码为数据模型,然后将该数据模型对象编码为httpBody。

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