使用序列化程序时更改json输出

时间:2015-08-14 06:43:08

标签: ios json xcode swift nsjsonserialization

我想问一下,当我点击按钮然后打印出json数据就像那张图片一样..

enter image description here

我想询问是否可以像这样更改输出

  

{" telur" :" 4" ," roti" :" 4"}
       {"垒球" :" 60" ," senam" :" 60"}

在另一方面,我想让它成为一个括号和擦除类型和数量,我虽然使用jsonserializer ..

像这样的代码..

menu.swift

class Nutritiondata
{
    var type = "type"
    var amount = 0
    //var date = "Date"
    init (type: String, amount: Int)
    {
        self.type = type
        self.amount = amount
        //self.date = date
    }
}

class Activitiesdata
{
    var type = "type"
    var amount = 0
    //var date = "Date"
    init (type: String, amount: Int)
    {
        self.type = type
        self.amount = amount
        //self.date = date
    }
}

表格视图

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {



        let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("cell") as! CustomCell
        let menu = arrayOfMenu[indexPath.row]
        cell.setCell(menu.type, rightlabeltext: menu.unit, imagename: menu.image)
        var data = Nutritiondata(type: menu.type, amount: String(cell.value ).toInt()!)
        var json = JSONSerializer.toJson(data)
        JSONNutrisi.jsondata = json
        return cell
    }

var data = Nutritiondata(type: leftlabel.text!, amount: qtytext.text.toInt()!)
        var temp:Nutritiondata
        temp = data
        var idx = 0
        if(temp.amount-1 > 0) {
            temp.amount -= 1
        }
        data = Nutritiondata(type: leftlabel.text!, amount: qtytext.text.toInt()!)
        var json = JSONSerializer.toJson(data)
        var tempJson = JSONSerializer.toJson(temp)
        for(var i = 0; i < Nutritionmenu.data.count; i++){
            if(Nutritionmenu.data[i] == tempJson){
                self.check = true
                self.idx = i
            }
        }

1 个答案:

答案 0 :(得分:0)

首先制作一个具有structtype

amount函数
struct Nutritiondata {

    let type :String
    let amount : Int

    func Dict(age : Int) -> Nutritiondata
    {
        return Nutritiondata(type: type, amount: amount)
    }
}

现在取一个数组并将数据存储在其中。这里我存储静态数据,但您存储响应中的数据

let alldata = [Nutritiondata(type: "telur", amount: 4),Nutritiondata(type: "roti", amount: 4),Nutritiondata(type: "softball", amount: 60),Nutritiondata(type: "seman", amount: 60)]

现在您可以使用以下数据。

alldata[0].type   // telur

alldata[0].amount // 4

cellForRowAtIndexPath委托方法中使用此alldata。

let nutrition = alldata[indexPath.row]

您可以使用以下代码

在tableview中显示
nutrition.type
nutrition.amount