阅读JSON并转换为特定部分的C#类

时间:2018-10-14 09:31:26

标签: c# json

我有一个像这样的JSON文件

{
    ...
    ...
    ...
    "ExternalApp": {
        "BaseUrl": "https://xxx.xxx.com",
        "CallbackUrl": "https://localhost/TestCallBack",
        "TokenKey": "xxxx",
        "TokenSecret": "xxxx"
    }
    ...
    ...
    ...
}

如您所见,JSON文件包含许多字段。设置之一是 ExternalApp 。我需要将此 ExternalApp 读入我的设置类。在.NET Core中,使用ConfigurationBuilder非常简单。但是如何在旧版类(非.NET Core)中做到这一点。

public class ExternalAppSetting
{
    public string BaseUrl;
    public string CallbackUrl;
    public string TokenKey;
    public string TokenSecret;
    ...
    ...
    ...
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

以下是使用Json.NET的方法:

string json = @"{
                ""SomeProp1"": ""SomePropValue"",
                ""ExternalApp"": {
                    ""BaseUrl"": ""https://xxx.xxx.com"",
                    ""CallbackUrl"": ""https://localhost/TestCallBack"",
                    ""TokenKey"": ""xxxx"",
                    ""TokenSecret"": ""xxxx""
                },
                ""SomeProp2"": ""SomeProp2Value"",
            }";
JObject o = JObject.Parse(json);
JToken jt = o.SelectToken("ExternalApp");

ExternalAppSetting eas = jt.ToObject<ExternalAppSetting>();

答案 1 :(得分:1)

您可以使用JSON.NET进行此操作。 试试这个:

ExternalAppSetting externalAppSetting = new ExternalAppSetting();
var token = JToken.Parse(json);
var externalApp = token.SelectToken("ExternalApp");

externalAppSetting.BaseUrl = externalApp["BaseUrl"].ToString();
externalAppSetting.CallbackUrl = externalApp["CallbackUrl"].ToString();
externalAppSetting.TokenKey = externalApp["TokenKey"].ToString();
externalAppSetting.TokenSecret = externalApp["TokenSecret"].ToString();

其中json是您的json字符串。