我有一个问题,从Swift3
的结构数组中产生一个JSON
。我在Stack Overflow
搜索,没有帮助我(这里的screenshot)。我有一个struct
这样的:如何从Swift 3中的Struct数组中创建JSON?
public struct ProductObject {
var prodID: String
var prodName: String
var prodPrice: String
var imageURL: String
var qty: Int
var stock: String
var weight: String
init(prodID: String, prodName: String, prodPrice: String, imageURL: String, qty: Int, stock: String, weight: String){
self.prodID = prodID
self.prodName = prodName
self.prodPrice = prodPrice
self.imageURL = imageURL
self.qty = qty
self.stock = stock
self.weight = weight
}
}
和结构的阵列:
private var productsArray = [ProductObject]()
当数组不为空,然后我试图打印在另一个类,它显示了这调试器:
[app.cartclass.ProductObject(prodID: "2", prodName: "produk 2", prodPrice: "IDR 1000000", imageURL: "someURL", qty: 1, stock: "11", weight: "200")]
该阵列不是有效的JSON object
。如何使其成为有效的JSON
对象?我不知道这部分“app.cartclass.ProductObject”是否有问题,或者不能使其成为有效的JSON object
?
编辑:
这里是我如何序列化为JSON
:
var products = [String:Any]()
for j in 0 ..< cart.numberOfItemsInCart() {
products=["\(j)":cart.getAllProduct(atIndex: j)]
}
if let valid = JSONSerialization.isValidJSONObject(products) {
do {
let jsonproducts = try JSONSerialization.data(withJSONObject: products, options: .prettyPrinted) as! [String:Any]
//print(jsonproducts)
} catch let error as NSError {
print(error)
}
} else {
print("it is not a valid JSON object");
}
为什么不用wana使用类代替struct? –
@ShobhakarTiwari @ShobhakarTiwari因为在类cartclass有很多其他的事情要做 –
然后使用nsjsonserialization将其转换成json数据 –