在C#中向JSON对象添加属性

10
我试图向一个不是JSON根的JSON对象添加属性。
以下是示例。
{
    'isFile' : 'true',
    'Values' : {
        'valueName1': 'value1',
        'valueName2': 'value2',
        'valueName3': 'value3',
    }
}

手术后,我希望JSON文件看起来像下面这样。

Translated Text:

手术后,我希望JSON文件看起来像下面这样。

{
    'isFile' : 'true',
    'Values' : {
        'valueName1': 'value1',
        'valueName2': 'value2',
        'valueName3': 'value3',
        'valueName4': 'value4'
    }
}

我已经通过下面的代码访问了Values属性。

接下来我该去哪里?

JObject appSettings = JsonConvert.DeserializeObject<JObject>(jsonString);
string values = appSettings["Values"].ToString();

需要帮忙吗?

*编辑 我正在尝试在Visual Studio中为Azure应用程序功能的local.settings.json文件编辑“值”部分。


3
JObject appSettings = JsonConvert.DeserializeObject<JObject>(jsonString); appSettings["Values"]["valueName4"] = "value4"; - CodeNotFound
学习如何编写数组属性的 JSON 代码。您正在硬编码一个列表。 - T McKeown
是的,我现在正试图访问 Azure Function 的应用程序设置。你知道该怎么做吗? - Evan Park
“我该怎么做?” - @CodeNotFound已经给出了答案:使用索引器。请参见如何在JObject中添加或更新JProperty值 - dbc
如果您正在访问 app.config,请使用 ConfigurationManager 相关内容。ConfigurationManager - maccettura
显示剩余3条评论
1个回答

16
你可以使用动态对象完成它。
        dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(jsonString);
        obj.Values.valueName4 = "value4";
        System.Console.WriteLine(JsonConvert.SerializeObject(obj));

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