JObject - 动态添加新对象

4

我有一个像这样的JObject:

JObject grid =
            new JObject(
            new JProperty("myprop", "value 1"),
            new JProperty("name", 
                new JArray(
                                new JObject(
                        new JProperty("myprop2", "value 2")
                    )
                )
            )
        )

这没有问题。

但是,我有一个对象想要迭代并将它们添加到我的JObject中,该怎么做呢?

像这样吗?(我知道这是无效的)

JObject grid =
            new JObject(
            new JProperty("myprop", "value 1"),
            new JProperty("name", 
                new JArray(
                                new JObject(
                        new JProperty("myprop2", "value 2"),
                        foreach(var value in myObject) {
                            new JObject(
                                new JProperty(value.Name, value.Value)
                            )   
                        }
                    )
                )
            )
        )

我该如何做到这一点?

2个回答

3

您也可以向现有的JObject添加属性:

var obj = new JObject();
Console.WriteLine(obj.ToString()); // {}

obj.Add("key", "value");
Console.WriteLine(obj.ToString()); // {"key": "value"}

但这不仅仅是属性 - 还有JObjects和JArrays吗? - brother
是的,您可以添加不仅是原始令牌(如字符串),还可以添加对象和数组。 - Oliver Hanappi

2
如果您事先知道数组项,为什么不先创建它们呢?
var myprop2Items = new List<JObject>();

foreach(var value in myObject) {
                            myprop2Items.Add(new JObject(
                                new JProperty(value.Name, value.Value)
                            ));

} 


JObject grid =
            new JObject(
            new JProperty("myprop", "value 1"),
            new JProperty("name", 
                new JArray(
                                new JObject(
                        new JProperty("myprop2", "value 2"),
                        myprop2Items
                        )
                    )
                )
            )
        )

如果它是空的 - 我该如何检查?这样我就不应该在最后一个属性的末尾添加逗号。 - brother
你是想要获取对象的成员还是同类对象的列表?在C#对象中,你不能像在JavaScript中那样简单地迭代属性。 你考虑过使用Newtonsoft.Json将对象序列化和反序列化为JSON吗? - bash.d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接