C#部分反序列化和完整序列化

时间:2017-06-27 17:37:53

标签: c# json

我在C#中有一个json文件。这是70mb的数据。我想将它读入带有JSON.net的Windows窗体应用程序,编辑一些数据并将其保存回来。 我的问题是我不想为这个JSON文件创建所有数据结构,但我想创建它们的一些。当我重新序列化文件时,我希望从我创建的数据结构中进行所有更改,而不会丢失我没有丢失结构的数据。知道这是否可行?我希望我的问题很明确。

1 个答案:

答案 0 :(得分:2)

我建议你使用Jath的XPath等价物。使用Json.NET,您可以parse字符串并创建动态对象。

使用SelectToken,您可以查询值,或使用Linq

对于示例,我将假设一个包含序列化对象的json字符串。

var o = Newtonsoft.Json.Linq.JObject.Parse(jsonString);
o.SelectToken("TheNodeToChange").Replace("TheNewValue");
var updatedJsonString = JsonConvert.SerializeObject(o);

这将反序列化整个对象,您需要知道要更改的节点。但是你不必实现完整的对象模型。