将 JSON 作为参数传递 swift
Passing JSON as a parameter swift
我正在进行 api 调用,这需要我将 JSON 作为参数传递。当我这样做时,它会使应用程序崩溃。我正在使用 Moya 进行网络连接,所以我决定使用 SwiftyJSON 将 JSON 直接获取到 body,但应用程序崩溃并显示 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__SwiftValue)
public var task: Task {
switch self {
case .postCheckout(let cart): return .requestParameters(parameters: ["cart": cart], encoding: JSONEncoding.default)
}
}
我的莫亚
func postCheckout(cart: JSON) -> Observable<BaseResponseModel> {
return provider.rx.request(.postCheckout(cart: cart))
.mapObject(BaseResponseModel.self)
.asObservable()
}
当我打印 JSON 这就是打印的内容
{
"total" : 6000,
"subscription" : {
"id" : 4,
"quantity" : 3
},
"vas" : [
4,
6,
2
]
}
一般我们发送 JSON string
而不是 JSON object
。制作 JSON
数据并使用 utf-8
编码将其转换为字符串对象。
但是 Moya
自己进行此转换,因此在 ["cart": cart]
中,如果您将购物车作为字典参数传递,那么它应该可以工作。
示例:
.requestParameters(parameters: ["cart": ["total": 6000, "user": "me"]], encoding: JSONEncoding.default)
我正在进行 api 调用,这需要我将 JSON 作为参数传递。当我这样做时,它会使应用程序崩溃。我正在使用 Moya 进行网络连接,所以我决定使用 SwiftyJSON 将 JSON 直接获取到 body,但应用程序崩溃并显示 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__SwiftValue)
public var task: Task {
switch self {
case .postCheckout(let cart): return .requestParameters(parameters: ["cart": cart], encoding: JSONEncoding.default)
}
}
我的莫亚
func postCheckout(cart: JSON) -> Observable<BaseResponseModel> {
return provider.rx.request(.postCheckout(cart: cart))
.mapObject(BaseResponseModel.self)
.asObservable()
}
当我打印 JSON 这就是打印的内容
{
"total" : 6000,
"subscription" : {
"id" : 4,
"quantity" : 3
},
"vas" : [
4,
6,
2
]
}
一般我们发送 JSON string
而不是 JSON object
。制作 JSON
数据并使用 utf-8
编码将其转换为字符串对象。
但是 Moya
自己进行此转换,因此在 ["cart": cart]
中,如果您将购物车作为字典参数传递,那么它应该可以工作。
示例:
.requestParameters(parameters: ["cart": ["total": 6000, "user": "me"]], encoding: JSONEncoding.default)