Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 19 Febrero 2023, 10:51 am



Título: ¿Cómo pasar de Newtonjson a josn de Microsoft?
Publicado por: Meta en 19 Febrero 2023, 10:51 am
Hola:

Uso el .NET 7.0 y tiene su propia librería. Mi idea es no usar librerías externas como Newtonjson, si no el que incluye el propio .NET.

La librería oficial de Visual Studio viene aquí.

Dejo el código aquí abajo hecho con Newtonjson.

Código:
using Newtonsoft.Json;

namespace Guardar_y_cargar_datos_en_archivo.json_.NET_7._0
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        class MiInfo
        {
            public string? TextBox { get; set; }
            public bool CheckBox { get; set; }
            public bool RadioButton1_Luz_ON { get; set; }
            public bool RadioButton2_Luz_OFF { get; set; }
        }

        void SalvarDatos()
        {
            MiInfo miInfo = new()
            {
                TextBox = textBox1.Text,
                CheckBox = checkBox1.Checked,
                RadioButton1_Luz_ON = radioButton1.Checked,
                RadioButton2_Luz_OFF = radioButton2.Checked
            };

            try
            {
                string serializado = JsonConvert.SerializeObject(miInfo);
                File.WriteAllText(@"Ejemplo.json", serializado);
            }
            catch {}
        }

        void RecuperarDatos()
        {
            if (File.Exists(@"Ejemplo.json"))
            {
                string serializado = File.ReadAllText(@"Ejemplo.json");
                //MiInfo miInfo = (MiInfo)JsonConvert.DeserializeObject(serializado);
                MiInfo miInfo = JsonConvert.DeserializeObject<MiInfo>(serializado);
                if (miInfo != null)
                {
                    textBox1.Text = miInfo.TextBox;
                    checkBox1.Checked = miInfo.CheckBox;
                    radioButton1.Checked = miInfo.RadioButton1_Luz_ON;
                    radioButton2.Checked = miInfo.RadioButton2_Luz_OFF;
                }
            }
        }

        private void button_Guardar_Click(object sender, EventArgs e)
        {
            SalvarDatos();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            RecuperarDatos();
        }
    }
}

Ahora toca hacer lo que se tenga que hacer con la librería que incluye el .net.

¿Alguna idea?

Lo pregunto porque veo que no es para nada compatible entre Newtonjson con el json .net de Microsoft.

Saludos.