Ash*_*ain 3 c# xml json json.net
场景:
我必须发送一个Httpwebrequest和服务器要求它只接受两个值作为Json格式,我想再向另一个服务器发送一个请求,并且一次需要一个JSON格式的值.
对于上面的场景,我创建了一个Class并提供了如下所有三个属性
pubilc class MyClass
{
public string as { get; set;}
public int value { get; set;}
public string asd { get;s et;}
}
Run Code Online (Sandbox Code Playgroud)
对于第一个HttpWebRequest,对于第一个服务器,我想只发送两个来自MyClass的属性'as'和'asd'现在我将序列化NewtonSoft的JsonConvert函数如下
MyClass class = new MyClass();
string json = JsonConvert.SerializeObject(class);
Run Code Online (Sandbox Code Playgroud)
上面的语法将返回具有0和null值属性的json,NewtonSoft提供了从Json中删除null值的函数,但是它不能删除值为0的属性,或者你可以说你的属性数据类型是int并且有没有分配任何值,而是为这些属性分配0.
从Json中删除Null属性的语法
string json = JsonConvert.SerializeObject(class, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
Run Code Online (Sandbox Code Playgroud)
上述语法将在序列化MyClass对象期间删除空值.
现在问一下如果jsen属性为0,如何从json中删除属性.
小智 8
只需修改一下你的表情即可
string json = JsonConvert.SerializeObject(
class,
Newtonsoft.Json.Formatting.Indented,
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }
);
Run Code Online (Sandbox Code Playgroud)
如下,
string json = JsonConvert.SerializeObject(
class,
Newtonsoft.Json.Formatting.Indented,
new JsonSerializerSettings {
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |