📜  json 属性 C# (1)

📅  最后修改于: 2023-12-03 15:17:04.513000             🧑  作者: Mango

JSON 属性 in C#

Introduction

JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy to read and write for humans and machines. In C#, we use the System.Text.Json namespace to work with JSON data. In this article, we will discuss object properties in JSON and how we can work with them in C#.

JSON Properties

In JSON, properties are defined as key-value pairs and represented using curly braces {}. A property consists of a name (in double quotes), followed by a colon, and a value (which can be any valid JSON data type). Here is an example JSON object with two properties:

{
  "name": "John",
  "age": 30
}

In C#, we can deserialize this JSON object into an object using the JsonSerializer.Deserialize<T>() method:

string jsonString = "{\"name\":\"John\",\"age\":30}";
var person = JsonSerializer.Deserialize<Person>(jsonString);

Console.WriteLine(person.Name); // Output: John
Console.WriteLine(person.Age); // Output: 30

Here, we are using a Person class to represent the JSON object. The properties of the Person class correspond to the properties of the JSON object.

Naming Conventions

In C#, we typically use PascalCase naming convention for object properties. In contrast, JSON properties are usually named using snake_case. To handle this mismatch, we can use the JsonPropertyName attribute to specify the JSON property name:

public class Person
{
    [JsonPropertyName("full_name")]
    public string FullName { get; set; }

    [JsonPropertyName("date_of_birth")]
    public DateTime DateOfBirth { get; set; }
}

In this example, the FullName property is mapped to the full_name property in the JSON object. Similarly, the DateOfBirth property is mapped to the date_of_birth property in the JSON object.

Nullable Properties

In C#, we can declare nullable value types using the ? operator. For example, int? age represents an integer that can be null. In JSON, we can represent a nullable property using the null value:

{
  "name": "John",
  "age": null
}

To deserialize this JSON object, we need to make sure that the corresponding property in our C# class is nullable:

public class Person
{
    public string Name { get; set; }

    public int? Age { get; set; }
}
Conclusion

In this article, we have discussed JSON properties and how they can be represented and manipulated in C#. We have also looked at naming conventions and nullable properties. By understanding these concepts, we can work effectively with JSON data in C#.