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

Android向C# WebAPI提交JSON时数据/属性为空问题求助

解决Android调用C# WebAPI时User对象属性全为null的问题

嘿,这个问题我碰到过好多次了!你说加了flush()后对象不再为空但属性全是null,核心问题基本都出在JSON序列化/反序列化的匹配度或者请求配置遗漏上,咱们一个个排查:

1. 先核对两端的字段名称与序列化规则

C#的JSON序列化器(不管是System.Text.Json还是Newtonsoft.Json)默认是区分大小写的,而Android这边常用的Gson/Jackson默认会把Java字段序列化成小驼峰格式(比如userName),如果你的C# User类用的是大驼峰(比如UserName),两边就对不上,自然填充不了值。

解决办法二选一:

  • 统一两端的字段命名,比如都用小驼峰或者都用大驼峰;
  • 给C#的属性加映射特性:
    • 用System.Text.Json的话,加[JsonPropertyName("userName")];
    • 用Newtonsoft.Json的话,加[JsonProperty("userName")]。

另外还要检查Java的User类:字段有没有public的getter方法?很多Android序列化库是通过getter来读取字段值的,如果没写getter,序列化出来的JSON里根本不会包含这个字段,C#端当然拿不到值。

2. 确认Android端的请求头是否正确设置

这是最容易忽略的点!你必须给请求加上Content-Type: application/json这个头,否则C# WebAPI根本不知道你发的是JSON格式的请求体,只会创建一个空的User对象,不会填充任何属性。

Android端的代码里要加上这一行:

connection.setRequestProperty("Content-Type", "application/json");

记得要放在写入请求体之前哦。

3. 检查Android端的JSON序列化结果

你用OutputStreamWriter写数据的时候,先把序列化后的JSON字符串打个日志看看,比如用Gson的话:

User user = new User();
// 给user赋值
String json = new Gson().toJson(user);
Log.d("DebugJSON", json); // 看看这个JSON里有没有你要传的字段和值

如果日志里的JSON是空的或者缺少字段,那问题就出在Android的序列化环节,比如字段没赋值、没加getter,或者序列化库配置有问题。

4. 配置C# WebAPI的反序列化规则

如果不想一个个加映射特性,可以直接让C#的序列化器忽略大小写,或者自动匹配小驼峰:

  • 用System.Text.Json的话,在Program.cs里加:
    builder.Services.AddControllers()
        .AddJsonOptions(options =>
        {
            // 忽略大小写匹配字段
            options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
        });
    
  • 用Newtonsoft.Json的话,配置成自动用小驼峰解析:
    builder.Services.AddControllers()
        .AddNewtonsoftJson(options =>
        {
            options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        });
    

5. 确认WebAPI接口的参数标注

最后检查你的C#接口方法,参数上一定要加[FromBody]特性,告诉WebAPI从请求体里读取JSON数据:

[HttpPost("add-user")]
public IActionResult AddUser([FromBody] User user)
{
    // 处理逻辑
}

如果没加这个特性,WebAPI会默认从URL参数或者表单里找值,自然拿不到请求体里的JSON字段。

按这几个步骤排查下来,应该就能解决属性为null的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:03:34