如果使用编写器抛出ArgumentException,JObject的CreateWriter有什么意义?

时间:2011-08-31 00:02:29

标签: json.net

我有一个“遗留”方法,它接受一个JsonWriter并转储一堆json ..出于这个,我想要一个JObject实例,所以我尝试了以下内容:

JObject myObj = new JObject();
using (var writer = myObj.CreateWriter())
{
    TheLegacyMethod(writer);
}
// TODO:  Do stuff with the nicely initialized JObject instance

问题是第一次“TheLegacyMethod”尝试实际使用编写器来执行:

writer.WriteStartObject();

我收到一个ArgumentException抱怨JObject无法添加到JObject。

我使用了一个臭臭的解决方法,首先将Json写入StringBuilder,然后对结果执行JObject.Parse()...但我想避免使用此中间版。

如果你不能使用它,JObject.CreateWriter()有什么意义?我错过了什么吗? (我希望我是。)

谢谢,

泰勒

1 个答案:

答案 0 :(得分:2)

将值写入对象时,必须在值之前写入属性名称。