Flutter實體與JSON解析的一種方法

2022-02-16 09:13:38 字數 1162 閱讀 999

vs code作為編輯器

1. 首先,json物件與字串的轉換是使用json.encode和json.decode的,需要匯入import 'dart:convert';

這裡主要的自然不是這個,而是json物件和實體物件的轉換

當然,實際上json物件算是乙個map物件,直接通過鍵訪問就可以得到值,即通過實體物件的屬性名就可以得到值。

這裡只是把這一步通過命令生成而已

2. 匯入對應的flutter包

即在pubspec.yaml中新增

dependencies:

json_annotation: ^3.0.0

dev_dependencies:

build_runner: ^1.0.0

json_serializable: ^3.2.0

儲存將自動載入,或者終端輸入flutter packages get,亦或者vs code中點選「檢視-命令面板」再輸入flutterget就會出現

3. 建立實體的dart檔案,下面以news為例 —— 可以用生成

import 'package:json_annotation/json_annotation.dart';//注意必須匯入,不然無法使用@jsonserializable()

part "news.g.dart";//嚴格區分大小寫,且必須是檔名中間加上g.

,否則無法成功。另外也是必須的,因為要生成乙個轉換部分檔案

@jsonserializable()//注意加上,後面命令識別用

class news extends object 

4. 終端輸入命令flutter packages pub run build_runner build

等到成功,每個json序列化都將會有乙個輸出

這樣就生成好了乙個轉換類news.g.dart,此時轉換檔案中有_$newsfromjson方法

你會發現竟然是報錯的??那是因為你主類中缺少了命名式建構函式,加上即可

factory news.fromjson(mapjson) => _$newsfromjson(json);

5. 這樣,你就可以通過命名建構函式從json物件轉換為實體物件了

6. 當然還要說說缺陷和坑:

1)泛型無法成功

2)最好確定檔名後再執行命令,不然重新命名可能會發生很難解決的事情

json轉實體,json轉list

json轉換 注 以下全用的是com.alibaba.fastjson 1.實體轉string轉json user user new user user.age 18 user,name 張三 實體轉string string json json.tojsonstring result string...

Json資料轉換實體物件

string json component component component 首先,要把上面字串json格式化,以便看出json的結構 component component component 以上的json結構重複的是以下部分 component json字串裡面,把花括號是乙個物件 類 ...

返回JSON實體封裝類

public class jsonresult 若沒有資料返回,可以人為指定狀態碼和提示資訊 param code param msg public jsonresult string code,string msg 有資料返回時,狀態碼為 0,預設提示資訊為 操作成功!param data pub...