自动补全发送数据ID

时间:2018-10-31 04:05:41

标签: arrays swift alamofire

我有JSON形式的响应

[
      {
          "id_ser_reg": "103",
          "n_ser_reg": "Operation NOC"
      },
      {
          "id_ser_reg": "120",
          "n_ser_reg": "Freelance"
      }
]

我有一个搜索文本字段,并显示“ n_ser_reg”作为标题,但是如果我也选择“ n_ser_reg”,我也想获取“ id_ser_reg”,我已经尝试使用alamofire来获取响应,但是我不知道如何获取“ n_ser_reg”与“ id_ser_reg”同时显示。

enter image description here

这是获取n_ser_reg的图像,我想如果我单击我发送的按钮“ cari” id_ser_reg,而不是n_ser_reg

enter image description here

更新

我有一个链接,在该链接中需要ID_ser_reg,但是在UI中它必须显示n_ser_reg,因此我必须显示n_ser_reg,并且当按下按钮时,n_ser_reg拥有的id_ser_reg将发送到该链接

2 个答案:

答案 0 :(得分:0)

您必须创建一个dictionary并将其数据解析为class/struct,而不是将响应解析为struct Response: Codable { var id_ser_reg: String? var n_ser_reg: String? }

Codable protocol

以上结构符合properties,即您可以使用其JSON直接与 if let data = response.data { let response = try? JSONDecoder().decode([Response].self, from: data) print(response) } 响应进行解析。

{{1}}

答案 1 :(得分:0)

您可以使用# Create classifier: classifier = tf.estimator.DNNRegressor( feature_columns=feature_columns, optimizer=optimizer ) # Train it: classifier.train( input_fn=training_input_fn, steps=steps ) # Remove event files to save disk space. _ = map(os.remove, glob.glob(os.path.join(classifier.model_dir, 'events.out.tfevents*'))) 来序列化数据并保留字典数组,而不必添加两个不同的name和id数组。

我将数据添加到数组中:

codable

并创建了一个jsonData以使用let tempArray : [[String:Any]] = [["id_ser_reg":"103", "n_ser_reg":"Operation NOC", ], ["id_ser_reg":"120", "n_ser_reg":"Freelance", ] ]

codable

对于do { let jsonData = try JSONSerialization.data(withJSONObject: tempArray, options: .prettyPrinted) print(jsonData) } catch let error as NSError { print(error) } ,首先创建一个Codable

struct

并序列化:

struct JsonResponse: Codable {
    var id_ser_reg : String?
    var n_ser_reg : String?
}

您可以看到do { let serverResponseData = try JSONDecoder().decode([JsonResponse].self, from: jsonData) print(serverResponseData[0].id_ser_reg!) } catch let error as NSError { print(error) } 是一个数组,现在在每个索引处都有名称和ID。 serverResponseData将减少您将数据一一添加到数组的代码行。

修改

如果您想继续进行下去。您可以再做一件事。

创建一个数组为:

Codable

以及您的回复:

var arrayData = [[String:Any]]()

现在,您有了一个字典数组,可以随时将数据用作:

if let dictionaryArray = data as? [[String:Any]] {
    self.arrayData = dictionaryArray
}

您在问题中添加的图像并不能说明什么是确切的UI,以及您如何使用数据填充UI中的图像。如果可能,添加确切的代码而不是代码的图像,并添加与问题中的UI的数据集成逻辑。 希望我的回答可以帮助您实现自己的目标。