【问题标题】:C# Json.NET convert string to JSON keyC# Json.NET 将字符串转换为 JSON 键
【发布时间】:2026-02-24 00:00:01
【问题描述】:

我的应用接受用户输入作为 json 键,我如何将字符串 a[0].b 转换为 json 键?

using Newtonsoft.Json.Linq;

string keys = "a[0].b";
dynamic js = dynamic js = JObject.Parse("{'a': [{'b' : 'hello'}, {'b': 'world'}]}");

//Console.WriteLine(js.a[0].b); // world

Console.WriteLine(js["a[0].b"]); // error
Console.WriteLine(js[keys]); // error

【问题讨论】:

    标签: c# json linq json.net


    【解决方案1】:

    我认为您会发现查找用户可能输入的任何内容都具有挑战性,但假设您希望示例中的“hello”,那么您应该解析为 JObject 而不是动态,以便您可以使用 SelectToken 或 @987654323 @ 带字符串路径:

    string keys = "a[0].b";
    JObject js = JObject.Parse("{'a': [{'b' : 'hello'}, {'b': 'world'}]}");
    string hello = js.SelectToken(keys).ToString();
    

    【讨论】: