有条件地添加一个新的json.net JProperty

时间:2014-01-10 21:39:44

标签: c# json json.net

如果对象包含特定变量,是否可以创建新的JProperty?例如:

string object = "var2";

var json = new JObject(
    new JProperty("var1", var1),
    if (object == "var2")
    {
        new JProperty("var2", var2)
    }
    );

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:9)

是的。

可以选择Add,而不是在构造函数中声明额外属性
string myStr = "var2";

var json = new JObject(
    new JProperty("var1", var1));
if (myStr == "var2")
{
    json.Add(new JProperty("var2", var2));
}

答案 1 :(得分:3)

我通常使用Dictionary进行此操作,然后我允许json.net在最后将它拼接在一起:

var temp = new Dictionary<string,object>();
temp["var1"]=var;
if(mystr=="var2"){
   temp["var2"] = var2;
}
//serialize the dictionary using JsonConvert method once you're done