system.text.json序列化的json数据中不是原始的json结构,如何序列化成原始结构呢?

{

    "$id": "1",

    "return_code": "SUCCESS",

    "message": "",

    "resdata": {

        "$id": "2",

        "$values": [

            {

                "$id": "3",

                "menuOid": "be066af2-0de9-ea11-a76b-00155de5aa1f",

                "name": "点菜谱1",

                "effect": true

            }

        ]

    }

}

如上面的数据,多出来了一层结构,"$id" 和 "$values" ,如何去除这层结构恢复原始的json对象结果呢?

如果您使用 System.Text.Json 序列化数据,默认情况下它会生成一种不带格式的 JSON 字符串,但您可以通过使用 JsonSerializerOptions 类来自定义生成的 JSON 格式。

您可以通过以下代码来生成带格式的 JSON 字符串:

var options = new JsonSerializerOptions
{
    WriteIndented = true
};

string json = JsonSerializer.Serialize(object, options);

其中,object 是您要序列化的对象,WriteIndented 属性设置为 true 时,生成的 JSON 字符串将带有缩进。您可以调整缩进的空格数量,通过将 JsonSerializerOptions 的 Indented 属性设置为您希望的数量:

var options = new JsonSerializerOptions
{
    WriteIndented = true,
    IndentChar = ' ',
    Indentation = 4
};

您还可以按照需要设置其他选项,以定制生成的 JSON 格式。