【问题标题】:How to store two values with two different key into array or dictionary using Swift? [closed]如何使用 Swift 将具有两个不同键的两个值存储到数组或字典中? [关闭]
【发布时间】:2020-01-09 06:20:01
【问题描述】:

我正在尝试将两个不同的值(例如 idname)存储到带有键和值的数组或字典中。有一次,我存储需要转换如下 JSON 格式。如何做到这一点?

我的值存储到数组或字典中

do {
     let  dateCreated = results as! [Student]
     for _datecreated in dateCreated {
        print("\(_datecreated.id!)-\(_datecreated.name!)") // This two Value I need store into array or dictionary and convert like below JSON format
     }
   } catch let err as NSError {
      print(err.debugDescription)
   }

必需的 JSON 格式

{
    "status": true,
    "data": [
        {
            "id": "20",
            "name": "a"
        },
        {
            "id": "21",
            "name": "b"
        },
        {
            "id": "22",
            "name": "c"
        }
    ]
}

【问题讨论】:

标签: ios json swift


【解决方案1】:

这可能会帮助你...:)

var data = [Any]()
// call this function on time of get data or adding data 
func info (id : Int , name : String){
    var information = [id : name]
    data.append(information)
}

//this function will generate final formate 

func create_formate() -> [String:Any]{
    var final_formate = [String:Any]()
    final_formate["status"] = true
    final_formate["data"] = data

    return final_formate
}

【讨论】:

  • 谢谢你,我会尽力在这里更新你。
  • 我会等你的正确标记... :)
  • 如果我想在没有状态和数据的情况下发送,我该怎么做?
  • 你的意思是 blenk.. ?
  • 如果我想发送服务器,它的发布是这样的 ` \”name\”:\”(\\n {\\n id = 78;\\n name = a;\\ n }\\n)\"}}")` 但需要像这样正确发送[[“name”: "a", "id": "78"]]
【解决方案2】:

1.数组: 您不能使用 Array 来存储 JSON。因为它只能存储相同的数据类型值。 JSON 有不同的数据类型,如 String、Int、Boolean、Array。

2.字典: 您可以使用字典数组将学生数据存储在 JSON 中。 JSON 结构使用 Dictionary { "key" : "value"} 和 Array [element1,element2]。如果您观察到这种模式,您可以在 Dictionary 中存储任何 JSON 数据

class Student{
    let id : String
    let name : String
    init(id : String , name :String) {
        self.id = id
        self.name = name
    }
}


    let data1 = Student(id: "20", name: "a")
    let data2 = Student(id: "21", name: "b")
    let data3 = Student(id: "22", name: "c")
    let status = true
    let dataArray = [data1,data2,data3]
    // Use array of dictory because Each student details are in a Dictoray. 
    var dataDictArray = [[String:String]]()
    for data in dataArray{
         var dataDict = [String : String]()
        dataDict["id"] = data.id
        dataDict["name"] = data.name
        dataDictArray.append(dataDict)
    }
    var jsonDict = [String : Any]()
    jsonDict["status"] = status

    jsonDict["data"] = dataDictArray

    print(jsonDict)

输出:-

(lldb) p jsonDict
([String : Any]) $R4 = 2 key/value pairs {
  [0] = {
    key = "data"
    value = 3 values {
      [0] = 2 key/value pairs {
        [0] = (key = "name", value = "a")
        [1] = (key = "id", value = "20")
      }
      [1] = 2 key/value pairs {
        [0] = (key = "name", value = "b")
        [1] = (key = "id", value = "21")
      }
      [2] = 2 key/value pairs {
        [0] = (key = "id", value = "22")
        [1] = (key = "name", value = "c")
      }
    }
  }
  [1] = {
    key = "status"
    value = true
  }
}

希望您对在 Dictory 中存储 JSON 有更好的了解。

【讨论】:

    猜你喜欢
    • 2019-10-23
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多