我正在嘗試根據提供給我的值動態創建一個 JSON 物件。
第一個場景 - 我擁有所有的價值
string param1 = "Hey";
string param2 = "Bye";
string param3 = "Later";
我會像這樣匯出我的 Json:
private string BuildJson (string param1, string param2, string param3)
{
//Passed values for example
//param1 = "Hey";
//param2 = "Bye";
//param3 = "Later";
object jJson = new
{
VALS= new
{
val1 = param1,
val2 = param2,
val3 = param3
}
};
return JsonConvert.SerializeObject(jJson );
}
這很好用。但是,現在我正在嘗試找到一種方法來創建相同的 JSON 物件,而不知道哪個引數會有值。如果沒有價值,那么我不希望我的 jJson 具有該屬性。
所以例如
private string BuildJson (string param1, string param2, string param3)
{
//Passed values for example
//param1 = "Hey";
//param2 = null;
//param3 = "Later";
//Since param2 is NULL, I would NOT want to have it all together in my JSON like below
object jJson = new
{
VALS= new
{
val1 = param1,
val3 = param3
}
};
return JsonConvert.SerializeObject(jJson );
}
有沒有其他方法可以像這樣動態創建 JSON?謝謝。
uj5u.com熱心網友回復:
由于這是Newtonsoft,只需包含NullValueHandling = NullValueHandling.Ignore
給定的
private static string BuildJson(string param1, string param2, string param3)
{
object jJson = new
{
VALS = new
{
val1 = param1,
val2 = param2,
val3 = param3
}
};
return JsonConvert.SerializeObject(jJson,
Formatting.Indented,
new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Ignore
});
}
用法
var result = BuildJson("asd", null, "sdf");
Console.WriteLine(result);
輸出
{
"VALS": {
"val1": "asd",
"val3": "sdf"
}
}
免責宣告:我會推薦Text.Json任何綠地開發,并且也會勸阻您不要使用這樣的匿名型別,而是使用實際的具體模型。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/360540.html
