gpt4 book ai didi

c# - 反序列化 JSON,然后将其部分序列化回来

转载 作者:行者123 更新时间:2023-12-02 17:36:12 25 4
gpt4 key购买 nike

我在任何地方都找不到我要找的东西。可能我不知道如何正确描述它。

假设我已经给出了 JSON 结构:

{
"important": {
"key1": "aaaa",
"key2": "bbbb",
"key3": "cccc"
},
"_meta": {
"other": {
"default": "a",
"something": 1
}}}

我只对重要部分感兴趣。

获取重要数据:

string temp = File.ReadAllText(jsonPath);
data = (JObject)JsonConvert.DeserializeObject(temp);
var important = data["important"].Value<JObject>().ToString();
importantData = JsonConvert.DeserializeObject<Dictionary<string, string>>(important);

它完成了这项工作。然后我对 importantData 进行一些修改我想将其保存回文件中。我尝试过以下代码:

string json = JsonConvert.SerializeObject(importantData);
data["important"] = json;
string rdyJson = JsonConvert.SerializeObject(data);
File.WriteAllText(jsonPath, rdyJson);

结果我得到:

{"important":"{\"key1\":\"aaaa\",\"key2\":\"bbbb\",\"key3\":\"cccc\"}","_meta":{"other":{"default":"a","something":1}}}

这几乎很好,因为它具有所有修改,但还有额外的 \important 部分中的每个 " 之前。另一件事是所有内容都在一行中,我希望像以前一样以排序且干净的格式保存它。

我认为问题出在双重序列化中,但我不知道如何避免它。

最佳答案

替换以下行:

string json = JsonConvert.SerializeObject(importantData);
data["important"] = json;

下一行:

data["important"] = JToken.FromObject(importantData);

关于c# - 反序列化 JSON,然后将其部分序列化回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com