You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 不使用类序列化包含地址数组的JSON结构的实现方法

解决方案

你只需要将Addresses字段的赋值从单个匿名对象调整为匿名对象数组即可,调整后的完整代码如下:

string jsonObject = JsonSerializer.Serialize(new
{
    Name = "Mark",
    Addresses = new []
    {
        new { address = "1234 Main street" },
        new { address = "1234 Pine Street" }
    }
});

说明

  • 原有代码的问题在于Addresses对应的值是单个匿名类实例,序列化后会生成JSON对象而非数组,使用new [] { 多个同结构匿名对象 }的写法,就会被序列化为符合要求的JSON数组。
  • System.Text.Json的JsonSerializer默认会将属性名转换为驼峰命名格式,如果你需要严格匹配预期JSON中首字母大写的Name属性,可以添加序列化配置关闭自动命名转换:
    string jsonObject = JsonSerializer.Serialize(new
    {
        Name = "Mark",
        Addresses = new []
        {
            new { address = "1234 Main street" },
            new { address = "1234 Pine Street" }
        }
    }, new JsonSerializerOptions { PropertyNamingPolicy = null });
    
  • 不需要严格匹配大小写的话,保持属性名小写name也可正常使用,只是序列化后输出的键名会是name。

内容的提问来源于stack exchange,提问作者Kevin Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:15:01