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