JSON.NET添加到JArray
发布时间:2020-12-16 18:39:49 所属栏目:百科 来源:网络整理
导读:我有一个我要添加的json数组,然后将内容写入文件.我没有问题将内容添加到数组,但使用JsonSerializer.Serialize方法写入文件给了我例外: ArgumentException的: 无法将Newtonsoft.Json.Linq.JObject添加到Newtonsoft.Json.Linq.JObject. 这发生在我下面的代
我有一个我要添加的json数组,然后将内容写入文件.我没有问题将内容添加到数组,但使用JsonSerializer.Serialize方法写入文件给了我例外:
ArgumentException的: 这发生在我下面的代码的最后一行. “jSerializer.Serialize(o.CreateWriter(),o);” JSON { "ArrayToManipulate": [ { "Name":"Value" },{ "Name":"value" } ] } 用于操作JSON对象的代码 JContainer o = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); JArray x = (JArray)o["ArrayToManipulate"]; ContentObject newObject = new ContentObject(){Name="Value"}; JToken tokenToAdd = JToken.Parse(JsonConvert.SerializeObject(newObject,Formatting.Indented)); x.Add(tokenToAdd); JsonSerializer jSerializer = new JsonSerializer(); jSerializer.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); jSerializer.Serialize(o.CreateWriter(),o); 我是以错误的方式来做这件事的吗? 解决方法
通过调用JContainer.CreateWriter获得的编写器不会根据需要写入文件 – 它是写入容器本身的编写器.您需要类似下面的代码 – 基于文件创建“常规”文本编写器,然后基于该文件创建JsonWriter.
const string JSON = "{"ArrayToManipulate":[{"Name":"Value"},{"Name":"value"}]}"; var reader = new StringReader(JSON); JContainer o = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); JArray x = (JArray)o["ArrayToManipulate"]; ContentObject newObject = new ContentObject() { Name = "Value" }; JToken tokenToAdd = JToken.Parse(JsonConvert.SerializeObject(newObject,Formatting.Indented)); x.Add(tokenToAdd); JsonSerializer jSerializer = new JsonSerializer(); jSerializer.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); using (var w = File.CreateText(@"C:tempa.json")) { using (var jw = new JsonTextWriter(w)) { jSerializer.Serialize(jw,o); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 使用PolicyKit为我的应用程序提供对受限文件的访问权
- c# – ASP.NET MVC缓存场景
- VB.NET:如果我总是用Thread.MemoryBarrier()完成我的写操作
- JavaScript之Vue.js【入门基础】
- 单元测试 – 第一个TDD,简单的2层C#项目 – 我应该进行单元
- c# – 如何OCR刻文?
- Postgresql – PostgresSQL与Mac上的Homebrew
- ruby-on-rails – Safari未在Rails应用中加载HTML5视频
- 【低耦合集成TabBarController】最低只需传两个数组即可完成
- C# WinForm中DataGrid列设置(转载)