Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将Json子属性转换为所需的对象?_C#_Json - Fatal编程技术网

C# 如何将Json子属性转换为所需的对象?

C# 如何将Json子属性转换为所需的对象?,c#,json,C#,Json,我有一个示例json文件,如下所示 { "TestOneConfig": { "SvcUrl": "www.abc.com/", "Port": "3455" }, "LiveTestConfig": { "ConnString": "abcd" } } 我有“TestOneConfig”的类模型,如下所示 如何将“TestOneConfig”子项反序列化到类模型 我试了以下方法,但没有成功。我用的是NewtonJsoft using (St

我有一个示例json文件,如下所示

{
  "TestOneConfig":  {
    "SvcUrl":   "www.abc.com/",
    "Port": "3455"
  },
  "LiveTestConfig": {
    "ConnString": "abcd"
  }
}  
我有“TestOneConfig”的类模型,如下所示

如何将“TestOneConfig”子项反序列化到类模型

我试了以下方法,但没有成功。我用的是NewtonJsoft

 using (StreamReader reader = new StreamReader("appsettings.json"))
                {
                    var settingsJson = reader.ReadToEnd();
                    dynamic settings1 = JsonConvert.DeserializeObject<object>(settingsJson);
                    dynamic settings2 = JsonConvert.DeserializeObject<TestOneConfig>(settings1.TestOneConfig);
                }
使用(StreamReader=newstreamreader(“appsettings.json”))
{
var settingsJson=reader.ReadToEnd();
动态设置1=JsonConvert.DeserializeObject(设置JSON);
动态设置2=JsonConvert.DeserializeObject(设置1.TestOneConfig);
}
假设您正在使用,您可以执行以下操作:

var jsonObj = JObject.Parse(json);
var testOneConfig = JsonConvert.DeserializeObject<TestOneConfig>(jsonObj["TestOneConfig"].ToString());

谢谢@PoweredByOrange。这很有帮助。因为我使用了NewtonJsoft,所以只更改了格式。它变成如下

using (StreamReader reader = new StreamReader("appsettings.json"))
   {
        dynamic settingsJson = reader.ReadToEnd();
        var settings = JObject.Parse(settingsJson);
        var testOneConfigObj = JsonConvert.DeserializeObject<TestOneConfig>(settings.TestOneConfig.ToString());                    
    }
使用(StreamReader=newstreamreader(“appsettings.json”))
{
动态设置json=reader.ReadToEnd();
var settings=JObject.Parse(settingsJson);
var testOneConfigObj=JsonConvert.DeserializeObject(settings.TestOneConfig.ToString());
}

您尝试过任何东西吗?没有任何代码显示allI在添加时所做的任何努力@Plutonix@Nandakumar1712这感觉像是一场灾难。你想要达到的最终目标是什么?这是一个.net核心项目吗?@Nkosi我想在运行时从Json文件中读取一些设置,以便进行测试。我不想读单个元素。我将运行时设置值建模到一个类,并将这些值映射到设置Json,以便于访问和以一种好的方式绑定数据。我现在让它工作如下。
var testOneConfigSvcUrl = jsonObj["TestOneConfig"]["SvcUrl"].ToString();
var testOneConfigPort = jsonObj["TestOneConfig"]["Port"].ToString();
var liveTestConfigConnString = jsonObj["LiveTestConfig"]["ConnString"].ToString();
using (StreamReader reader = new StreamReader("appsettings.json"))
   {
        dynamic settingsJson = reader.ReadToEnd();
        var settings = JObject.Parse(settingsJson);
        var testOneConfigObj = JsonConvert.DeserializeObject<TestOneConfig>(settings.TestOneConfig.ToString());                    
    }