// 字典(ios),string--->json
var res = JsonCodec().decode("{\"status\": 1001, \"error\":\"\",\"data\": {}}");
// 打印出数据类型,这里会打印为_InternalLinkedHashMap<String, dynamic>
print("${res['data'].runtimeType.toString()}")
// 这里会打印为true
print("${res['data'] is LinkedHashMap}")
总结:
[]-->List-->List<dynamic>
{}-->LinkedHashMap-->_InternalLinkedHashMap<String, dynamic>
1001-->int-->int
""-->String-->String
等,可以类推。
具体有什么用?
对{}延伸:如何判断{}中是否存在key?既然{}为LinkedHashMap,又因为LinkedHashMap有containsKey方法。自然可以用
// 这里会打印为true
print("${res['data'] is LinkedHashMap}")
场景:
比如后台返回的json数据正常情况{},但是异常会为[],如果不做判断直接解析会异常,所以可以判断类型是不是你要的,然后再解析,而不是直接解析。
网友评论