前提・実現したいこと
Jsonファイルから情報を読み取り、表示させたい
発生している問題・エラーメッセージ
Jsonファイル内のオブジェクトを読むことができず、Nullが帰ってくる
C#
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; namespace checksheet_windowsOCR_wpf.Model { public class JsonReader { private string path; public JsonReader(string _path) { this.path = _path; } public checklist_settings readsettingfile() { using (var sr = new StreamReader(path, System.Text.Encoding.UTF8)) { var jsonData = sr.ReadToEnd(); Console.WriteLine(jsonData); return JsonConvert.DeserializeObject<checklist_settings>(jsonData); }; } } }
デシリアライズするためのクラス
public class checklist_settings { public settings setting { get; set; } public IList<check_list> list { get; set; } } public class settings { public string name { get; set; } public string time_max { get; set; } public string time_min { get; set; } public IList<post_file_single> list; } public class check_list { public string name; public string category; public string judge_method; public string criteria_max; public string criteria_min; public string machine_code; public string process_code; } public class post_file_single { public string path; public string category; public string machine_code; public string process_code; }
読み込みたいJsonファイル
{ "settings": { "name": "hoge", "time_max": "60", "time_min": "30", "post_files": [ { "path": "aaa", "category": "aaa", "machine_code": "hoge0", "process_code": "hoge0" }, { "path": "aaa", "category": "aaa", "machine_code": "hoge1", "process_code": "hoge1" }, { "path": "aaa", "category": "aaa", "machine_code": "hoge2", "process_code": "hoge2" } ] }, "check_list": [ { "name": "name0", "category": "name0", "judge_method": "string", "criteria_max": "60", "criteria_min": "30", "machine_code": "hoge0", "process_code": "hoge0" }, { "name": "name1", "category": "name1", "judge_method": "string", "criteria_max": "60", "criteria_min": "30", "machine_code": "hoge1", "process_code": "hoge1" }, { "name": "name2", "category": "name2", "judge_method": "string", "criteria_max": "60", "criteria_min": "30", "machine_code": "hoge2", "process_code": "hoge2" } ] }
試したこと
公式のサンプルを試したり、ネストしないJsonで試して満たししました
どちらも問題なくできましたが、どうしても上記JsonファイルのようなネストされたJsonファイルのデシリアライズをしようとすると期待通りに中身が読み込めません
補足情報(FW/ツールのバージョンなど)
.net framework 4.6.1
Newtonsoft.Json 12.0.3
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー