私はこのようなひもを持っています、
{id:1, name: lorem ipsum, address: dolor set amet}
そして、私はその文字列をjsonに変換する必要があります、ダートフラッターでどのようにそれを行うことができますか?手伝ってくれてどうもありがとう。
json.decode
を使用する必要があります。 jsonオブジェクトを取り込んで、ネストされたキーと値のペアを処理できます。例を挙げます
import 'Dart:convert';
// actual data sent is {success: true, data:{token:'token'}}
final response = await client.post(url, body: reqBody);
// Notice how you have to call body from the response if you are using http to retrieve json
final body = json.decode(response.body);
// This is how you get success value out of the actual json
if (body['success']) {
//Token is nested inside data field so it goes one deeper.
final String token = body['data']['token'];
return {"success": true, "token": token};
}
Dart:encodeライブラリをインポートする必要があります。次に、jsonDecode関数を使用します。これにより、Mapと同様のダイナミックが生成されます
https://api.dartlang.org/stable/2.2.0/Dart-convert/Dart-convert-library.html
次のように、JSON配列をオブジェクトのリストに変換することもできます。
String jsonStr = yourMethodThatReturnsJsonText();
Map<String,dynamic> d = json.decode(jsonStr.trim());
List<MyModel> list = List<MyModel>.from(d['jsonArrayName'].map((x) => MyModel.fromJson(x)));
そしてMyModel
は次のようなものです:
class MyModel{
String name;
int age;
MyModel({this.name,this.age});
MyModel.fromJson(Map<String, dynamic> json) {
name= json['name'];
age= json['age'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['age'] = this.age;
return data;
}
}