func demo7(){
/**
OC 中定义字典使用{ }
Swift 中仍然使用 [],是通过值对
*/
let dict = ["name":"xiaohua","age":18] as [String : Any]
print(dict)
//[String : Any ] 使用最多
//在网络上获取的 JSON 有一个要求,KEY 必须是 NSString
/**
An object that may be converted to JSON must have the following properties:
- Top level object is an NSArray or NSDictionary
顶级节点必须是字典或者数组
- All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull
所有的对象必须是 NSString,NSNumber,NSArray,NSDictionary, or NSNull
如果是 数组 或者字典, 内部同样只能包含 String,Number,NSNull
- All dictionary keys are NSStrings
所有的 key 必须都是 NSString
- NSNumbers are not NaN or infinity
NSNumber 不能为空或者无穷大
在 JSON 中字符串有引号, Number 没有引号, 空值 null
*/
}
2. 可变与不可变
func demo8(){
/**
let 是不可变
var是可变
*/
var dict = ["name":"xiaohua","age":18] as [NSString : Any]
//如果 key 存在,值覆盖
dict["name"] = "xiaogang"
//如果 key 不存在,新增
dict["title"] = "nihao"
print(dict)
//遍历
/**
k, v 是随便写
前面的是 key
后面的是 value
*/
for(key,value) in dict{
print("Key: \(key) -- Value: \(value)")
}
}
3. 字典的合并
func demo9(){
var dict = ["name":"xiaohua","age": 18] as [NSString : Any]
let dict2 = ["title":"nihao", "name":"huahua"] as [NSString: Any]
//将 dict2 的内容合并到 dict 中
for (k,v) in dict2{
dict[k] = v
}
//合并字典的时候,和设置一样内容一样 如果有key,覆盖, 否则新增
print(dict)
}