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

在Azure Functions的.NET Core C#中将JSON转换为HubSpot表单提交API要求格式的技术求助

解决HubSpot表单提交格式转换问题

嗨,你已经完成了把输入JSON转成字典的关键一步,接下来只需要把这个键值对结构映射成HubSpot要求的fields数组格式就行,我给你两种实用的实现方案:

方式一:用强类型类实现(推荐,更易维护)

先定义和HubSpot输出结构匹配的实体类,这样序列化逻辑更清晰,后续扩展也方便:

// 对应HubSpot单个字段的结构
public class HubSpotField
{
    [JsonProperty("name")]
    public string Name { get; set; }
    
    [JsonProperty("value")]
    public string Value { get; set; }
}

// 对应HubSpot表单提交的完整请求结构
public class HubSpotFormSubmission
{
    [JsonProperty("fields")]
    public List<HubSpotField> Fields { get; set; }
}

接着基于你已有的dictionary完成转换并序列化:

// 将字典的键值对转成HubSpot字段列表
var hubSpotFields = dictionary.Select(kv => new HubSpotField
{
    Name = kv.Key,
    Value = kv.Value
}).ToList();

// 包装成完整的请求对象
var submissionRequest = new HubSpotFormSubmission
{
    Fields = hubSpotFields
};

// 序列化为目标JSON字符串
string outputJson = JsonConvert.SerializeObject(submissionRequest, Formatting.Indented);

方式二:用匿名类型快速实现(适合简单场景)

如果不想额外定义类,也可以直接用匿名类型构造目标结构:

var submissionRequest = new
{
    fields = dictionary.Select(kv => new
    {
        name = kv.Key,
        value = kv.Value
    })
};

string outputJson = JsonConvert.SerializeObject(submissionRequest, Formatting.Indented);

小补充

两种方案都能生成你需要的输出格式,强类型方案的优势在于后续如果HubSpot字段规则变化,或者需要添加字段验证逻辑时,调整起来更省心;要是你用的是.NET Core 3.0+的System.Text.Json,只需要把JsonConvert替换成JsonSerializer,对应的特性换成JsonPropertyName就可以兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:39:07