C# 如何使用字符串变量c中的给定路径获取JSON对象

C# 如何使用字符串变量c中的给定路径获取JSON对象,c#,json,object,dynamic,C#,Json,Object,Dynamic,var output=json.string我相信这就是您想要的,我的示例中使用了newtonsoft json库 var string = "test.data" var json = "{'test':{'data':[{'details':{'id':'1','name':'user1'}},{'details':{'id':'2','name':'user2'}}]}}" 您可以尝试根据路径获取值 var json = "{'test':{'data':[{'details':

var output=json.string

我相信这就是您想要的,我的示例中使用了newtonsoft json库

var string = "test.data"

var json = "{'test':{'data':[{'details':{'id':'1','name':'user1'}},{'details':{'id':'2','name':'user2'}}]}}"
您可以尝试根据路径获取值

   var json = "{'test':{'data':[{'details':{'id':'1','name':'user1'}},{'details':{'id':'2','name':'user2'}}]}}";

        var jObj = JObject.Parse(json);

        var result = jObj.SelectToken("test.data")?.ToString();

        // result

        // [
        // {
        //     "details": {
        //         "id": "1",
        //         "name": "user1"
        //     }
        // },
        // {
        //     "details": {
        //         "id": "2",
        //         "name": "user2"
        //     }
        // }
        // ]

使用JSON文件的路径读取JSON文件。您可以创建一个接受路径的公共方法,并可以读取它

var json = JObject.Parse(@"{
       'test':{
         'data':[
              {
               'details':
                   {
                     'id':'1',
                     'name':'user1'
                   }
               },
              {
                'details':
                    {
                       'id':'2',
                       'name':'user2'
                    }
               }
           ]
         }
     }");


JToken data = json.SelectToken("$.test.data");
Console.WriteLine(data);
如果要将JSON字符串转换为对象,请使用以下命令

using System;
using System.IO;

public static string ReadAllTextFromPath(string path)
        {
            var filePath= AppDomain.CurrentDomain.BaseDirectory + path;
            var fileData = File.ReadAllText(filePath);
            return fileData ;
        }
如果要从JSON数据中选择特定值,请使用selecttoken

var jsonString = ReadAllTextFromPath(filepath);//your JSON string
var jObject = Newtonsoft.Json.Linq.JObject.Parse(jsonString);

嗨,欢迎来到stackoverflow。请您更新一下您的问题,告诉我您希望得到什么样的输出以及到目前为止您尝试了什么?JSON.parsejson我还建议您查看newtonsoft文档以获取示例,诸如此类,作为要求您的评论之一,请始终尝试将预期输出添加到您的问题中,因为如果我想从细节中获取所有“id”,我在这里完全是盲目的,基于您的示例。我们怎样才能得到??。您可以添加解决方案吗?您可以使用json路径检查小提琴:检查路径$。电话号码[]。键入示例json。如果花些时间,尝试不同的方法来获得不同的属性,那将是非常棒的。如果仍然没有帮助,请让我知道我会更新我的答案谢谢。你的回答对我很有帮助。你现在可以用表情符号表示感谢_/\_
var object = (string)jObject.SelectToken("test.data");
//If you know "test.data" data having a structure of Model class, you can cast that class.