其他分享
首页 > 其他分享> > CodeGo.net>如何删除复杂的JSON对象中的空字符串JSON值?

CodeGo.net>如何删除复杂的JSON对象中的空字符串JSON值?

作者:互联网

我正在尝试将JSON值上传到AWS Dynamo,当我上传具有任何以“”作为值的属性的值时,它给我400型错误.我正在编写的应用程序是C#应用程序.

删除任何值为“”的键的最佳方法是什么?我已经看到了如何删除空值,但是我不确定这是否适用.

说:

{myObj: { x: "", y: "test str" }, myStr: "hello world!"}

成为:

{myObj: { y: "test str" }, myStr: "hello world!"}

解决方法:

如果使用的是Newtonsoft’s Json.NET库,则可以使用JsonSerializerSettings和DefaultValue属性:

public class Rootobject
{
    public Myobj myObj { get; set; }
    public string myStr { get; set; }
}

public class Myobj
{
    [DefaultValue("")]
    public string x { get; set; }
    [DefaultValue("")]
    public string y { get; set; }
}

var originalSerializedObject = "{myObj: { x: \"\", y: \"test str\" }, myStr: \"hello world!\"}";

var deserializedObject = JsonConvert.DeserializeObject<Rootobject>(originalSerializedObject);

var serializerSettings = new JsonSerializerSettings 
                             { 
                                NullValueHandling = NullValueHandling.Ignore, 
                                DefaultValueHandling = DefaultValueHandling.Ignore 
                             };

var newSerializedObject = JsonConvert.SerializeObject(deserializedObject, serializerSettings);

Console.WriteLine(newSerializedObject);
//{"myObj":{"y":"test str"},"myStr":"hello world!"}

标签:amazon-dynamodb,json,c
来源: https://codeday.me/bug/20191118/2024702.html