我使用WebSocket与Flutter应用中的服务器进行通信。让我们说我通过WebSocket接收了一个JSON对象:
{
"action": "getProduct",
"cbackid": 1521474231306,
"datas": {
"product": {
"Actif": 1,
"AfficheQte": 0,
"Article": "6"
},
"result": "success"
},
"deviceID": "4340a8fdc126bb59"
}
在我阅读datas
之前,我不知道action
的内容是什么,即便如此,每次都不能保证相同。{1}}更改action
/ datas
的一个示例是产品不存在时。
我可以在Map<String, Object>
中解析它,但是,如何访问Object
中的内容?
阅读此数据的正确方法是什么?
答案 0 :(得分:1)
不确定问题的内容,但您可以检查值的类型,然后继续
if(json['action'] == 'getProduct') {
var datas = json['datas'];
if(datas is List) {
var items = datas as List;
for(var item in items) {
print('list item: $item');
}
} else if (datas is Map) {
var items = datas as Map;
for(var key in items.keys) {
print('map item: $key, ${items[key]}');
}
} else if(datas is String) {
print('datas: $datas');
} // ... similar for all other possible types like `int`, `double`, `bool`, ...
}
如果String
为Server
,您也可以将其递归检查列表或地图值。