我想反序列化这样的 JSON 对象:
[{"Response":"OK","UUID":"89172"},{"Response":"OK","UUID":"10304"}]
进入一个自定义类,其中存储变量Response
和UUID
. 但是,我想反序列化多个数据响应,例如上面的示例。如果我可以使用该方法ForEach
来相应地弹出数据,那就太好了。任何人都可以建议吗?非常感谢!
我想反序列化这样的 JSON 对象:
[{"Response":"OK","UUID":"89172"},{"Response":"OK","UUID":"10304"}]
进入一个自定义类,其中存储变量Response
和UUID
. 但是,我想反序列化多个数据响应,例如上面的示例。如果我可以使用该方法ForEach
来相应地弹出数据,那就太好了。任何人都可以建议吗?非常感谢!
写这堂课
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.Net。查看“序列化和反序列化 JSON”部分中的Json.Net 帮助。
他们在那里向您展示了如何将 json-string 反序列化为对象。
您将需要 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 和其他人的帮助!我希望这个示例代码也可以帮助其他人!干杯。