C# 需要使用C阅读Json文件的帮助吗#
我正在使用json文件,并尝试使用C#进行读取 在这里,我想检查是否检索到叶节点值,然后执行一个条件,即Company->ABC->Address->“123” 123是叶 国家->国家1->“XYZ” XYZ是这里的叶子C# 需要使用C阅读Json文件的帮助吗#,c#,json,C#,Json,我正在使用json文件,并尝试使用C#进行读取 在这里,我想检查是否检索到叶节点值,然后执行一个条件,即Company->ABC->Address->“123” 123是叶 国家->国家1->“XYZ” XYZ是这里的叶子 string jsonFilePath = "D:\\ProjectCode1\\catalogJsonData.json"; string json = File.ReadAllText(jsonFilePath); Dictionary<string, obj
string jsonFilePath = "D:\\ProjectCode1\\catalogJsonData.json";
string json = File.ReadAllText(jsonFilePath);
Dictionary<string, object> json_Dictionary = (new JavaScriptSerializer()).Deserialize<Dictionary<string, object>>(json);
foreach (var item in json_Dictionary)
{
// parse here
Console.WriteLine("{0} {1}", item.Value);
await context.PostAsync(item.Key);
}
string jsonFilePath=“D:\\ProjectCode1\\catalogJsonData.json”;
字符串json=File.ReadAllText(jsonFilePath);
字典json_Dictionary=(新的JavaScriptSerializer())。反序列化(json);
foreach(json_字典中的var项)
{
//在这里解析
WriteLine(“{0}{1}”,item.Value);
wait context.PostAsync(item.Key);
}
上面的代码没有为item.value或item.Key打印任何值我建议创建一个模型类,您的json可以使用Newtonsoft.json NuGet反序列化。我还清理了您的Json示例 Json: 代码
classjsonmodel
{
公共IDictionary公司{get;set;}
公共IDictionary国家{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
字符串json=File.ReadAllText(“sample.json”);
var jsonModel=JsonConvert.DeserializeObject(json);
Console.WriteLine(“--companys--”);
foreach(jsonModel.Company中的var companyDictionary)
{
foreach(var company in companyDictionary.Value)
{
Console.WriteLine($“{company.Key}:{company.Value}”);
}
}
Console.WriteLine();
Console.WriteLine(“--Countries--”);
foreach(jsonModel.country中的var国家)
{
Console.WriteLine($“{country.Key}:{country.Value}”);
}
}
}
输出:
我建议创建一个模型类,您的json可以使用Newtonsoft.json NuGet反序列化。我还清理了您的Json示例 Json: 代码
classjsonmodel
{
公共IDictionary公司{get;set;}
公共IDictionary国家{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
字符串json=File.ReadAllText(“sample.json”);
var jsonModel=JsonConvert.DeserializeObject(json);
Console.WriteLine(“--companys--”);
foreach(jsonModel.Company中的var companyDictionary)
{
foreach(var company in companyDictionary.Value)
{
Console.WriteLine($“{company.Key}:{company.Value}”);
}
}
Console.WriteLine();
Console.WriteLine(“--Countries--”);
foreach(jsonModel.country中的var国家)
{
Console.WriteLine($“{country.Key}:{country.Value}”);
}
}
}
输出:
Newtonsoft JSONA您是否使用此表单或解析文件,因为这是您知道的唯一方法,或者是否有其他原因?因为
json
无效,它会导致所有RFC失败<代码>尾随逗号出现@Franck我必须以类似的方式进行映射,但我不确定语法和RFC。一个节点的最大嵌套级别可以是3,最小嵌套级别可以是1。@MakeinIndainSpire只是如果您知道该格式,您只需创建一个具有正确属性的类,并将该类用作反序列化对象,它就可以顺利填充。综上所述,Codexer提出了一个很好的观点,因为json
甚至是无效的。在一些地方有多余的逗号是没有意义的。如果这是正确的,那么使用类结构解析就很容易了。Newtonsoft JSONA您是否使用此表单或解析文件,因为这是您知道的唯一方法,或者是否有其他原因?因为json
无效,它会使所有RFC失败<代码>尾随逗号出现@Franck我必须以类似的方式进行映射,但我不确定语法和RFC。一个节点的最大嵌套级别可以是3,最小嵌套级别可以是1。@MakeinIndainSpire只是如果您知道该格式,您只需创建一个具有正确属性的类,并将该类用作反序列化对象,它就可以顺利填充。综上所述,Codexer提出了一个很好的观点,因为json
甚至是无效的。在一些地方有多余的逗号是没有意义的。如果这是正确的,那么使用类结构进行解析就很容易了。
string jsonFilePath = "D:\\ProjectCode1\\catalogJsonData.json";
string json = File.ReadAllText(jsonFilePath);
Dictionary<string, object> json_Dictionary = (new JavaScriptSerializer()).Deserialize<Dictionary<string, object>>(json);
foreach (var item in json_Dictionary)
{
// parse here
Console.WriteLine("{0} {1}", item.Value);
await context.PostAsync(item.Key);
}
{
"Company": {
"ABC": {
"ADDRESS": "123 STREET",
"DEF": "ADDRESS 567"
}
},
"Country": {
"Country1": "XYZ",
"Country2": "ADG"
}
}
class JsonModel
{
public IDictionary<string, IDictionary<string, string>> Company { get; set; }
public IDictionary<string, string> Country { get; set; }
}
class Program
{
static void Main(string[] args)
{
string json = File.ReadAllText("sample.json");
var jsonModel = JsonConvert.DeserializeObject<JsonModel>(json);
Console.WriteLine("-- Companies-- ");
foreach(var companyDictionary in jsonModel.Company)
{
foreach(var company in companyDictionary.Value)
{
Console.WriteLine($"{company.Key}:{company.Value}");
}
}
Console.WriteLine();
Console.WriteLine("-- Countries --");
foreach (var country in jsonModel.Country)
{
Console.WriteLine($"{country.Key}:{country.Value}");
}
}
}