Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json.net - Fatal编程技术网

C# 如何将JSON转换为具有更改键的对象

C# 如何将JSON转换为具有更改键的对象,c#,json,json.net,C#,Json,Json.net,在我的JSON中,键不是常量。我正在从App_Data读取文件,我试图做的是使用API调用将IFSC匹配的银行返回给用户 "Result": { "AKJB0000001": { "BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK", "IFSC": "AKJB0000001", "BRANCH": "RTGS-HO", "ADDRESS": "JANVAIBHAV,OLD

在我的
JSON
中,键不是常量。我正在从
App_Data
读取文件,我试图做的是使用API调用将
IFSC
匹配的银行返回给用户

"Result": 
{
    "AKJB0000001": {
        "BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK",
        "IFSC": "AKJB0000001",
        "BRANCH": "RTGS-HO",
        "ADDRESS": "JANVAIBHAV,OLD COTTON MARKET,AKOLA,PIN 444001",
        "CONTACT": null,
        "CITY": "AKOLA",
        "DISTRICT": "AKOLA",
        "STATE": "MAHARASHTRA"
    },
    "AKJB0000002": {
        "BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK",
        "IFSC": "AKJB0000002",
        "BRANCH": "MALEGAON",
        "ADDRESS": "JANVAIBHAV, MAIN ROAD, MALEGAON PIN 444 503",
        "CONTACT": "271252",
        "CITY": "MALEGAON",
        "DISTRICT": "WASHIM",
        "STATE": "MAHARASHTRA"
    }
}
公共异步任务GetBankName(字符串IFSCCode)
{ 
//这是我的密码
}
字符串IFSCCodeFile=System.Web.HttpContext.Current.Server.MapPath(“~/App_Data/ifsc-codes/”+ifsc+.json”);
JObject-IFSCCodes=JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList=JsonConvert.DeserializeObject(IFSCCodes.ToString());

但是
银行列表
返回空值。

您可以从字典获得帮助

public async Task<IHttpActionResult> GetBankName(string IFSCCode)
{ 
    // here my code goes
}

string IFSCCodeFile = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/ifsc-codes/" + IFSC + ".json");
JObject IFSCCodes = JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList = JsonConvert.DeserializeObject<BankDetails>(IFSCCodes.ToString());

JsonConvert.DeserializeObject您可以从字典中获得帮助

public async Task<IHttpActionResult> GetBankName(string IFSCCode)
{ 
    // here my code goes
}

string IFSCCodeFile = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/ifsc-codes/" + IFSC + ".json");
JObject IFSCCodes = JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList = JsonConvert.DeserializeObject<BankDetails>(IFSCCodes.ToString());

JsonConvert.DeserializeObject您可以使用下面的类结构来反序列化json

JsonConvert.DeserializeObject<ResultParser>(yourInput)ş
class-Rooot
{
公共字典结果{get;set;}
}
公共类银行详情
{
公共字符串库{get;set;}
公共字符串IFSC{get;set;}
公共字符串分支{get;set;}
公共字符串地址{get;set;}
公共对象联系人{get;set;}
公共字符串CITY{get;set;}
公共字符串区域{get;set;}
公共字符串状态{get;set;}
}
用法:

class Rooot
{
    public Dictionary<string, BankDetail> Result { get; set; }
}

public class BankDetail
{
    public string BANK { get; set; }
    public string IFSC { get; set; }
    public string BRANCH { get; set; }
    public string ADDRESS { get; set; }
    public object CONTACT { get; set; }
    public string CITY { get; set; }
    public string DISTRICT { get; set; }
    public string STATE { get; set; }
}
string json=File.ReadAllText(IFSCCodeFile);
Rooot Rooot=JsonConvert.DeserializeObject(json);
foreach(rooot.Result中的变量项)
{
控制台。写入线(项。键);
Console.WriteLine(item.Value.BANK??“空”);
Console.WriteLine(item.Value.IFSC??“NULL”);
Console.WriteLine(item.Value.BRANCH??“NULL”);
Console.WriteLine(item.Value.ADDRESS??“NULL”);
Console.WriteLine(item.Value.CONTACT??“NULL”);
Console.WriteLine(item.Value.CITY??“NULL”);
Console.WriteLine(item.Value.DISTRICT??“NULL”);
Console.WriteLine(item.Value.STATE??“NULL”);
Console.WriteLine();
}
Console.ReadLine();
输出:

class Rooot
{
    public Dictionary<string, BankDetail> Result { get; set; }
}

public class BankDetail
{
    public string BANK { get; set; }
    public string IFSC { get; set; }
    public string BRANCH { get; set; }
    public string ADDRESS { get; set; }
    public object CONTACT { get; set; }
    public string CITY { get; set; }
    public string DISTRICT { get; set; }
    public string STATE { get; set; }
}

您可以使用下面的类结构来反序列化json

JsonConvert.DeserializeObject<ResultParser>(yourInput)ş
class-Rooot
{
公共字典结果{get;set;}
}
公共类银行详情
{
公共字符串库{get;set;}
公共字符串IFSC{get;set;}
公共字符串分支{get;set;}
公共字符串地址{get;set;}
公共对象联系人{get;set;}
公共字符串CITY{get;set;}
公共字符串区域{get;set;}
公共字符串状态{get;set;}
}
用法:

class Rooot
{
    public Dictionary<string, BankDetail> Result { get; set; }
}

public class BankDetail
{
    public string BANK { get; set; }
    public string IFSC { get; set; }
    public string BRANCH { get; set; }
    public string ADDRESS { get; set; }
    public object CONTACT { get; set; }
    public string CITY { get; set; }
    public string DISTRICT { get; set; }
    public string STATE { get; set; }
}
string json=File.ReadAllText(IFSCCodeFile);
Rooot Rooot=JsonConvert.DeserializeObject(json);
foreach(rooot.Result中的变量项)
{
控制台。写入线(项。键);
Console.WriteLine(item.Value.BANK??“空”);
Console.WriteLine(item.Value.IFSC??“NULL”);
Console.WriteLine(item.Value.BRANCH??“NULL”);
Console.WriteLine(item.Value.ADDRESS??“NULL”);
Console.WriteLine(item.Value.CONTACT??“NULL”);
Console.WriteLine(item.Value.CITY??“NULL”);
Console.WriteLine(item.Value.DISTRICT??“NULL”);
Console.WriteLine(item.Value.STATE??“NULL”);
Console.WriteLine();
}
Console.ReadLine();
输出:

class Rooot
{
    public Dictionary<string, BankDetail> Result { get; set; }
}

public class BankDetail
{
    public string BANK { get; set; }
    public string IFSC { get; set; }
    public string BRANCH { get; set; }
    public string ADDRESS { get; set; }
    public object CONTACT { get; set; }
    public string CITY { get; set; }
    public string DISTRICT { get; set; }
    public string STATE { get; set; }
}

请显示您的
银行详细信息
模型?在您的
银行详细信息
中声明
结果
字典
,如或所示。请显示您的
银行详细信息
模型?在
银行详细信息
中声明
结果
字典
,如或所示或或。此答案被接受。很高兴听到,请在答案左侧打勾,使其变为绿色:)此答案被接受。很高兴听到,请在答案左侧打勾,使其变为绿色:)