以给定格式 Swift 创建 JSON
Create JSON in given format Swift
我想创建以下格式的 JSON。
{
"userID": "1234",
"cart_items": {
"1": {
"item_Seq_no": 1,
"catalog_id": 234,
"qty": 1,
"amount": 100
},
"2": {
"item_Seq_no": 2,
"catalog_id": 45,
"qty": 3,
"amount": 300
},
"3": {
"item_Seq_no": 3,
"catalog_id": 177,
"qty": 2,
"amount": 200
}
}
}
我在下面写的代码并不是完全按照上面的格式创建的。
let arr:NSMutableArray = []
for i in 0...KCatalog.catalogValues.count-1
{
let seqnum1 = String(i + 1)
let param2:[String: AnyObject] = [
seqnum1: [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
],
]
arr.addObject(param2)
}
print(arr)
let param1:NSMutableDictionary = [
"cart_items" : arr,
"userID":"asdf",
]
print(param1)
let data1 = try! NSJSONSerialization.dataWithJSONObject(param1, options: NSJSONWritingOptions.PrettyPrinted)
let json = String(data: data1, encoding: NSUTF8StringEncoding)
if let json = json {
print(json)
}
我想知道给定的格式是否正确。如果是,请建议我按上述格式制作
我得到的输出是
{
"userID": "asdf",
"cart_items": [
{
"1": {
"item_Seq_no": 1,
"amount": 10,
"catalog_id": "1",
"qty": 1
}
},
{
"2": {
"item_Seq_no": 2,
"amount": 15,
"catalog_id": "2",
"qty": 1
}
},
{
"3": {
"item_Seq_no": 3,
"amount": 0,
"catalog_id": "3",
"qty": 0
}
}
]
}
根据萨曼莎的回答,我得到了以下输出
{
"userID": "asdf",
"cart_items": {
"1": {
"1": {
"item_Seq_no": 1,
"amount": 10,
"catalog_id": "1",
"qty": 1
}
},
"2": {
"2": {
"item_Seq_no": 2,
"amount": 15,
"catalog_id": "2",
"qty": 1
}
},
"3": {
"3": {
"item_Seq_no": 3,
"amount": 0,
"catalog_id": "3",
"qty": 0
}
}
}
}
cart_items 应该是字典而不是数组。
var cartItems = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let seqnum1 = String(i + 1)
let param2:[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
]
cartItems[seqnum1] = param2
}
稍后
let param1:NSMutableDictionary = [
"cart_items" : cartItems,
"userID":"asdf",
]
基于@Samantha 的回答,下面是 Swift 3.0 代码。
var cartDictionaryArr = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let keyValue = String(i + 1)
let itemsArr :[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i]
]
cartDictionaryArr[keyValue] = itemsArr as AnyObject
}
print(cartDictionaryArr)
let finalDict:NSMutableDictionary = [
"cart_items" : cartDictionaryArr,
"userID":"123",
]
print(finalDict)
let data1 = try! JSONSerialization.data(withJSONObject: finalDict, options: JSONSerialization.WritingOptions.prettyPrinted)
let json = String(data: data1, encoding: String.Encoding.utf8)
if let json = json {
print(json)
}
这是 Swift 2 工作代码 -
var cartDictionaryArr = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let keyValue = String(i + 1)
let itemsArr:[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
]
cartDictionaryArr[keyValue] = itemsArr as AnyObject
}
print(cartDictionaryArr)
let finalDict:NSMutableDictionary = [
"cart_items" : cartDictionaryArr,
"userID":"123",
]
print(finalDict)
let data1 = try! NSJSONSerialization.dataWithJSONObject(finalDict, options: NSJSONWritingOptions.PrettyPrinted)
let json = String(data: data1, encoding: NSUTF8StringEncoding)
if let json = json {
print(json)
}
我想创建以下格式的 JSON。
{
"userID": "1234",
"cart_items": {
"1": {
"item_Seq_no": 1,
"catalog_id": 234,
"qty": 1,
"amount": 100
},
"2": {
"item_Seq_no": 2,
"catalog_id": 45,
"qty": 3,
"amount": 300
},
"3": {
"item_Seq_no": 3,
"catalog_id": 177,
"qty": 2,
"amount": 200
}
}
}
我在下面写的代码并不是完全按照上面的格式创建的。
let arr:NSMutableArray = []
for i in 0...KCatalog.catalogValues.count-1
{
let seqnum1 = String(i + 1)
let param2:[String: AnyObject] = [
seqnum1: [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
],
]
arr.addObject(param2)
}
print(arr)
let param1:NSMutableDictionary = [
"cart_items" : arr,
"userID":"asdf",
]
print(param1)
let data1 = try! NSJSONSerialization.dataWithJSONObject(param1, options: NSJSONWritingOptions.PrettyPrinted)
let json = String(data: data1, encoding: NSUTF8StringEncoding)
if let json = json {
print(json)
}
我想知道给定的格式是否正确。如果是,请建议我按上述格式制作
我得到的输出是
{
"userID": "asdf",
"cart_items": [
{
"1": {
"item_Seq_no": 1,
"amount": 10,
"catalog_id": "1",
"qty": 1
}
},
{
"2": {
"item_Seq_no": 2,
"amount": 15,
"catalog_id": "2",
"qty": 1
}
},
{
"3": {
"item_Seq_no": 3,
"amount": 0,
"catalog_id": "3",
"qty": 0
}
}
]
}
根据萨曼莎的回答,我得到了以下输出
{
"userID": "asdf",
"cart_items": {
"1": {
"1": {
"item_Seq_no": 1,
"amount": 10,
"catalog_id": "1",
"qty": 1
}
},
"2": {
"2": {
"item_Seq_no": 2,
"amount": 15,
"catalog_id": "2",
"qty": 1
}
},
"3": {
"3": {
"item_Seq_no": 3,
"amount": 0,
"catalog_id": "3",
"qty": 0
}
}
}
}
cart_items 应该是字典而不是数组。
var cartItems = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let seqnum1 = String(i + 1)
let param2:[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
]
cartItems[seqnum1] = param2
}
稍后
let param1:NSMutableDictionary = [
"cart_items" : cartItems,
"userID":"asdf",
]
基于@Samantha 的回答,下面是 Swift 3.0 代码。
var cartDictionaryArr = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let keyValue = String(i + 1)
let itemsArr :[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i]
]
cartDictionaryArr[keyValue] = itemsArr as AnyObject
}
print(cartDictionaryArr)
let finalDict:NSMutableDictionary = [
"cart_items" : cartDictionaryArr,
"userID":"123",
]
print(finalDict)
let data1 = try! JSONSerialization.data(withJSONObject: finalDict, options: JSONSerialization.WritingOptions.prettyPrinted)
let json = String(data: data1, encoding: String.Encoding.utf8)
if let json = json {
print(json)
}
这是 Swift 2 工作代码 -
var cartDictionaryArr = [String: AnyObject]()
for i in 0...KCatalog.catalogValues.count-1
{
let keyValue = String(i + 1)
let itemsArr:[String: AnyObject] = [
"item_Seq_no" : i+1,
"catalog_id" : ((KCatalog.catalogValues[i] as! catalogInfo).catalog_id),
"qty" : orderedQuantity[i],
"amount" : totalQuantityPrice[i],
]
cartDictionaryArr[keyValue] = itemsArr as AnyObject
}
print(cartDictionaryArr)
let finalDict:NSMutableDictionary = [
"cart_items" : cartDictionaryArr,
"userID":"123",
]
print(finalDict)
let data1 = try! NSJSONSerialization.dataWithJSONObject(finalDict, options: NSJSONWritingOptions.PrettyPrinted)
let json = String(data: data1, encoding: NSUTF8StringEncoding)
if let json = json {
print(json)
}