【发布时间】:2018-01-05 06:48:14
【问题描述】:
我有一个这样的 POCO 对象 -
class User
{
string FullName { get; set;}
DateTime DOJ { get; set;}
string UserName { get; set;}
}
我有一个 WebAPI 发送以下 JSON 来更新用户
PUT /user/{user-id}
{
"FullName ": "My Name",
"DOJ": "01-05-2018",
"UserName": "My_user_Name"
}
// Deserialize in C# code
var user = JsonConvert.DeserializeObject<User>(Above-Json-String);
当我使用 JSON.net api 反序列化这个 json 时,“user.UserName”的值为“我的用户名”,下划线被转换为空格。
在属性值中保留下划线的任何解决方案?
【问题讨论】:
-
我刚刚尝试从字符串常量反序列化,并保留了下划线。所以我不认为它是反序列化。可能是传输层中的某些东西将它们更改为空格吗?快速测试:反序列化前看看你的 JSON 字符串是否有下划线。
-
请查看link
-
@sunrise:这是在属性 name 中,而不是 value。
-
@Hans - 感谢您的回复。我试过你的测试,我可以在反序列化之前看到下划线。所以它通过传输层。顺便说一句,您使用的是什么版本的库?我正在使用“8.0.3.19514”,由于业务原因,我无法更改为更高版本。