c# JSON反序列化到自定义类

本文关键字:自定义 反序列化 JSON | 更新日期: 2023-09-27 18:13:41

我想这样反序列化一个JSON对象:

[{"Response":"OK","UUID":"89172"},{"Response":"OK","UUID":"10304"}]

放入自定义类中,其中包含存储ResponseUUID的变量。然而,我想要反序列化多个数据响应,如上面的例子。如果我可以使用ForEach方法,这样我就可以相应地弹出数据,那就太好了。有人能给点建议吗?很多谢谢!

c# JSON反序列化到自定义类

写这个类

public class MyClass
{
   public string Response { get; set; }
   public string UUID { get; set; }
}

那么你可以使用newtonsoft.json库对其进行反序列化

string jsonString = "[{"Response":"OK","UUID":"89172"},{"Response":"OK","UUID":"10304"}]";
...
...
var myListOfItems= JsonConvert.DeserializeObject<List<MyClass>>(jsonString);
foreach(var item in myListOfItems)
{
   ....
}

控制台应用程序的完整代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        string jsonString = "[{'Response':'OK','UUID':'89172'},{'Response':'OK','UUID':'10304'}]";
        var items= JsonConvert.DeserializeObject<List<MyClass>>(jsonString);
        foreach (var item in items)
        {
            Console.WriteLine("UUUID: "+item.UUID);
            Console.WriteLine("Response: " + item.Response);
            Console.WriteLine();
        }
        Console.ReadKey();
    }
}
public class MyClass
 {
    public string Response { get; set; }
    public string UUID { get; set; }
 }
}

我会使用Json。净。看一下Json。Net帮助在"序列化和反序列化JSON"一节。

他们告诉你如何反序列化json字符串到一个对象

您将需要Newtonsoft。Json库:

public class A
{
    public string Response { get; set; }
    public string UUID { get; set; }
}
static void Main(string[] args)
{
    var json = "[{'"Response'":'"OK'",'"UUID'":'"89172'"}, '"Response'":'"OK'",'"UUID'":'"10304'"}]";
    var result = JsonConvert.DeserializeObject<IEnumerable<A>>(json);
    foreach (var a in result)
        Console.WriteLine("Response: {0} UUID: {1}", a.Response, a.UUID);
    Console.ReadKey();
}

在@Newton Sheikh的帮助下,我终于解决了这个问题。首先谢谢你。

首先,我创建了一个类(Student)
public class Student
{
   public string Response { get; set; }
   public string UUID { get; set; }
}

然后导入JSON。. NET创建了一个函数:

public List<Student> ReturnAllStudentsList()
    {
        string jsonString = "[{'Response':'OK','UUID':'89172'},{'Response':'OK','UUID':'10304'}]";
        List<Student> Students = new List<Student>(); //Creates a list of custom Type: Student
        var result = JsonConvert.DeserializeObject<List<Student>>(jsonString);
        foreach (var student in result)
        {
            Students.Add(student);
        }
        return Students;
    }
从这一点,我有一个学生名单。然后在主程序中,我调用这个函数:
    private void button1_Click(object sender, EventArgs e)
    {
        List<Student> Students = ReturnAllStudentsList(); // Gets the list from JSON.
        foreach(Student student in Students)
        {
            // Here I can access to each student for every loop cycle.
            MessageBox.Show(student.Response);
        }
    }

感谢@Newton Sheikh和其他人的帮助!我希望这个示例代码也能帮助到其他人!欢呼。