You can can copy paste run full code below
You can use full model class definition Payload below and parse with payloadToJson
This example code create Payload object with your json string and convert it back to json string
code snippet
String payloadToJson(Payload data) => json.encode(data.toJson());
...
String str = payloadToJson(payload);
print(str);
output
{"preguntas":[{"id":"7d0e0584-3049-4814-b127-0faa02b455b4","encuesta":null,"orden":1,"descripcion":"Dificultad para respirar de moderada a grave (no puede decir frases completas)","respuestas":[],"obligatoria":true,"estado":false,"fechaCreacion":null,"responsableCreacion":null,"fechaModificacion":null,"responsableModificacion":null},{"id":"9809e985-2d1f-4f79-a5b9-da6731e14012","encuesta":null,"orden":2,"descripcion":"Fiebre o sentirse afiebrados (escalofríos, sudoración)","respuestas":[],"obligatoria":true,"estado":false,"fechaCreacion":null,"responsableCreacion":null,"fechaModificacion":null,"responsableModificacion":null}]}
full code
import 'package:flutter/material.dart';
import 'dart:convert';
Payload payloadFromJson(String str) => Payload.fromJson(json.decode(str));
String payloadToJson(Payload data) => json.encode(data.toJson());
class Payload {
List<Pregunta> preguntas;
Payload({
this.preguntas,
});
factory Payload.fromJson(Map<String, dynamic> json) => Payload(
preguntas: List<Pregunta>.from(json["preguntas"].map((x) => Pregunta.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"preguntas": List<dynamic>.from(preguntas.map((x) => x.toJson())),
};
}
class Pregunta {
String id;
dynamic encuesta;
int orden;
String descripcion;
List<dynamic> respuestas;
bool obligatoria;
bool estado;
dynamic fechaCreacion;
dynamic responsableCreacion;
dynamic fechaModificacion;
dynamic responsableModificacion;
Pregunta({
this.id,
this.encuesta,
this.orden,
this.descripcion,
this.respuestas,
this.obligatoria,
this.estado,
this.fechaCreacion,
this.responsableCreacion,
this.fechaModificacion,
this.responsableModificacion,
});
factory Pregunta.fromJson(Map<String, dynamic> json) => Pregunta(
id: json["id"],
encuesta: json["encuesta"],
orden: json["orden"],
descripcion: json["descripcion"],
respuestas: List<dynamic>.from(json["respuestas"].map((x) => x)),
obligatoria: json["obligatoria"],
estado: json["estado"],
fechaCreacion: json["fechaCreacion"],
responsableCreacion: json["responsableCreacion"],
fechaModificacion: json["fechaModificacion"],
responsableModificacion: json["responsableModificacion"],
);
Map<String, dynamic> toJson() => {
"id": id,
"encuesta": encuesta,
"orden": orden,
"descripcion": descripcion,
"respuestas": List<dynamic>.from(respuestas.map((x) => x)),
"obligatoria": obligatoria,
"estado": estado,
"fechaCreacion": fechaCreacion,
"responsableCreacion": responsableCreacion,
"fechaModificacion": fechaModificacion,
"responsableModificacion": responsableModificacion,
};
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
String jsonString = '''
{
"preguntas": [
{
"id": "7d0e0584-3049-4814-b127-0faa02b455b4",
"encuesta": null,
"orden": 1,
"descripcion": "Dificultad para respirar de moderada a grave (no puede decir frases completas)",
"respuestas": [],
"obligatoria": true,
"estado": false,
"fechaCreacion": null,
"responsableCreacion": null,
"fechaModificacion": null,
"responsableModificacion": null
},
{
"id": "9809e985-2d1f-4f79-a5b9-da6731e14012",
"encuesta": null,
"orden": 2,
"descripcion": "Fiebre o sentirse afiebrados (escalofríos, sudoración)",
"respuestas": [],
"obligatoria": true,
"estado": false,
"fechaCreacion": null,
"responsableCreacion": null,
"fechaModificacion": null,
"responsableModificacion": null
}
]
}
''';
Payload payload = payloadFromJson(jsonString);
String str = payloadToJson(payload);
print(str);
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}