وارد کردن خواص خاص از JSON

مقدمه
بیاموزید که چگونه یک رشته JSON را با خواص شناخته شده بخوانید و خصوصیات ناخواسته را حذف کنید ، و پس از آن از بین بردن به یک کلاس به شدت تایپ شده.
از نوع داده های ورودی تا مورد نظر
برای این تظاهرات ، داده های زیر داده های ورودی با خاصیت ، سن و دو ویژگی ، نام و آخرین ، که باید نام و نام خانوادگی باشند ، دریافت می کنند.
[
{
"Id": 1,
"Name": "Mary",
"Last": "Jones",
"Age": 22
},
{
"Id": 2,
"Name": "John",
"Last": "Burger",
"Age": 44
},
{
"Id": 3,
"Name": "Anne",
"Last": "Adams",
"Age": 33
},
{
"Id": 4,
"Name": "Paul",
"Last": "Smith",
"Age": 29
},
{
"Id": 5,
"Name": "Lucy",
"Last": "Brown",
"Age": 25
}
]
کلاس برای وارد کردن داده ها به.
public class Person
{
public int Id { get; set; }
[JsonPropertyName("Name")]
public string FirstName { get; set; }
[JsonPropertyName("Last")]
public string LastName { get; set; }
}
خواص غیرقانونی
JsonPropertyname برای نام مستعار از نام املاک در JSON گرفته تا آنچه در کلاس است استفاده می شود.
از بین بردن خواص ناخواسته
این یک فرآیند ساده است ، که در یک فایل JSON با فرمت صحیح خوانده می شود و به دنبال تکرار آرایه و برای هر مورد یک یا چند ویژگی را حذف کنید. در اینجا فقط یک ملک حذف می شود.
var jsonArray = JsonNode.Parse(File.ReadAllText("peopleIncoming.json"))!.AsArray();
foreach (var item in jsonArray)
{
JsonObject obj = item!.AsObject();
obj.Remove("Age");
}
در مرحله بعد ، JSON اصلاح شده را در یک متغیر قرار دهید و JSON را روی یک پرونده بنویسید.
var updatedJson = jsonArray.ToJsonString(Indented);
DisplayUpdatedJsonPanel(updatedJson);
Console.WriteLine();
File.WriteAllText("People.json", updatedJson);
تعریف
public static JsonSerializerOptions Indented => new() { WriteIndented = true };
ناامیدی به کلاس شخص
var people = JsonSerializer.Deserialize<Person[]>(updatedJson);
تصویر زیر از یک پروژه نمونه است که گنجانده شده است.
خلاصه
با دستورالعمل های ارائه شده ، وارد کردن داده های JSON به یک قالب مورد نظر آسان است.
همچنین ببینید
C# system.text.json
رمز منبع