如何使用alamofire将数组数据发送到api?

时间:2019-04-16 09:14:12

标签: ios arrays swift api alamofire

这是我发送给api的参数

let params : [String : Any]  = [
      "interests" : interestParams
]

和params的输出是这样

[interests : ["Olahraga", "Sains", "Musik"]]

我需要发送这样的参数

{ "interests": ["Olahraga", "Sains", "Musik"] }

2 个答案:

答案 0 :(得分:0)

您可以将数组转换为json字符串,然后可以在字典中传递此json字符串。

使用此代码将数组转换为json字符串。

import React from 'react'
import useForm from 'react-hook-form'

function App() {
  const { register, handleSubmit, errors } = useForm() // initialise the hook
  const onSubmit = (data) => { console.log(data) } // callback when validation pass

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input name="firstname" ref={register} /> {/* register an input */}

      <input name="lastname" ref={register({ required: true })} /> {/* apply required validation */}
      {errors.lastname && 'Last name is required.'} {/* error message */}

      <input name="age" ref={register({ pattern: /\d+/ })} /> {/* apply a Refex validation */}
      {errors.age && 'Please enter number for age.'} {/* error message */}

      <input type="submit" />
    </form>
  )
}

像这样在字典中传递这个json字符串。

 func json(from object:Any) -> String? {
    guard let data = try? JSONSerialization.data(withJSONObject: object, options: []) else {
        return nil
    }
    return String(data: data, encoding: String.Encoding.utf8)
  }

    let interestParams = ["Olahraga", "Sains", "Musik"]
    let jsonString = json(from: interestParams)

答案 1 :(得分:0)

我一直以这种方式这样做Xcode始终不会像您想要的那样打印json

<form [formGroup]="editUSer">
  <input formControlName="name">
  <select formControlName="roleName">
    <option *ngFor="let item of listRole" [value]="item.name">{{item.name}}</option>
  </select>
</form>

但是在实际中,它将以这种形式将数据发送到请求中的服务器。

所以请不要担心Xcode会这样显示

{ "interests": ["Olahraga", "Sains", "Musik"] }