json 在 Flutter(Dart)中的使用

2021-10-01 14:31:27 字數 2877 閱讀 2396

首先準備好json資料

//乙個json格式的使用者列表字串

string jsonstr = '[,]';

//string jsonstr1 = '';

匯入 

import 'dart:convert';

使用 json.decode()將json字串轉為集合物件

json.encode()將集合物件轉為json字串

//將json字串轉為dart物件(此處是list)

list items = json.decode(jsonstr);

//輸出第乙個使用者的姓名

print(items[0]["name"]);

//json字串轉map型別

map usermap = json.decode(jsonstr1);

print(usermap);

//map轉json字串

print(json.encode(usermap));

結果:

可以看到,map型別是不帶 雙引號的

方法一:自定義 model ,只是為了弄懂記錄一下,不建議實際使用

首先準備好資料:使用上面的 jsonstr1

string jsonstr1 = '';

//json字串轉map型別

map usermap = json.decode(jsonstr1);

現在針對這個map 我們自定義乙個 model類:user

class user ;

}

使用:

var user = user.fromjson(usermap);

print(user.name);

user.name = "bob";

// 這裡只是把 user 轉換 為 map

print(user.tojson());

// 要 json 格式字串 還需要使用 json.encode()

print(json.encode(user.tojson()));

結果:

方法二:使用 外掛程式 flutterjsonbeanfactory 自動生成 model class

準備資料:

var webinfo = ,

]};

生成 model 類(這裡不好截圖)

new -> jsontodartbeanaction,出現:

make後得到 model 類:

class webinfoentity );

webinfoentity.fromjson(mapjson) );

} }maptojson()

return data; }}

class webinfosite );

webinfosite.fromjson(mapjson)

maptojson()

}

現在可以使用了:

// 把 json 資料 轉換為 webinfoentity 類

var w = webinfoentity.fromjson(webinfo);

print(w.sites[0].info[2]);

w.sites[0].info[2] = "tianmao";

print(w.tojson()); //map

結果:

使用 dio 獲取 json 資料

準備資料:

// 返回 json 字串的**

final string apiurl1 = "";

使用:

dio dio = dio();

// 通過 dio get 資料

future _getdio() async

結果:

這個 dio 返回後的資料直接就是 集合型別了,可以直接操作(就不需要使用json.decode()了)

具體返回什麼型別的集合,是 dio 根據 json 格式自動判定的,

使用的時候可以先通過 print(response.data.runtimetype); 檢視型別,

再決定是直接操作,還是轉換為 model 類

實際應用場景:可以配合 listview來展示資料等

JSON在android中應用

android裡面許可權控制的比較嚴,一般的應用當需要使用系統或者root許可權是,比較麻煩,所以編寫乙個root service用來處理root許可權請求,通過socket通訊 cpp view plain copy print?標準標頭檔案放在前面,否則有些函式定義會被覆蓋掉 include i...

在java裡拼接JSON

1.錯誤的格式 parenttypesjson 這裡的 有問題,因為這裡需要傳遞陣列,所以是 這個有問題。2.錯誤的格式 parenttypesjson 這裡冒號後面就為空了,拼接還是有問題。3.正確的格式 string typeswithselectcontroljson string paren...

在 golang 中使用 Json

序列化物件將使用 encoding json 中的 marshal 函式。函式原型為 func marshal v inte ce byte,error 以下是官網給出的例子 package main import encoding json fmt os func main group color...