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

如何反序列化GraphQL变更操作后的响应结果

正确实现GraphQL变更响应的反序列化

响应示例

你的GraphQL变更返回的JSON结构如下:

{
  "carCreate": {
    "car": {
      "id": "TestId"
    }
  }
}

问题分析

当前直接将CarCreate作为SendMutationAsync的泛型参数,无法匹配JSON的顶层结构——JSON最外层是carCreate字段,需要一个顶层模型来承载这个字段,才能正确完成反序列化。

解决方案

  1. 补充顶层响应模型
    添加一个对应整个JSON结构的顶层类,确保字段名与JSON中的carCreate完全匹配:
using Newtonsoft.Json;

public class Car
{
    public string Id { get; set; }
}

public class CarCreate
{
    public Car Car { get; set; }
}

// 新增顶层响应模型,对应JSON最外层结构
public class CarCreateResponse
{
    [JsonProperty("carCreate")]
    public CarCreate CarCreate { get; set; }
}

注:如果你的序列化器已配置为驼峰命名约定(Newtonsoft.Json默认支持),JsonProperty特性可以省略,但显式声明能避免命名策略变化带来的适配问题。

  1. 调整调用代码
    将SendMutationAsync的泛型参数改为顶层模型CarCreateResponse,再逐层获取目标对象:
var graphQlClient = new GraphQLHttpClient(AppConfig.GraphQlUrl, new NewtonsoftJsonSerializer());
var response = await graphQlClient.SendMutationAsync<CarCreateResponse>(request);

// 获取反序列化后的Car实例
var createdCar = response.Data?.CarCreate?.Car;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:05:36