"Country"と "Data"の2つのオブジェクトを持つJSONファイルがあります。 "Data"オブジェクトをデータテーブル "sortedFileData"に非直列化しようとしていますが、whileループの内側からデータテーブルにアクセスできませんでした。私は新しいクラス(C#: access variable in the inner scope from the outer scope)を作成する方法を解決する方法を見つけましたが、ここではこれをやっていません。C#外部スコープからのデータテーブルへのアクセス
using (FileStream fs = new FileStream(selectedProject, FileMode.Open, FileAccess.Read))
using (StreamReader sr = new StreamReader(fs))
using (JsonTextReader reader = new JsonTextReader(sr))
{
DataTable sortedFileData = new DataTable();
while (reader.Read())
{
if (reader.TokenType == JsonToken.StartObject)
{
// Load each object from the stream and do something with it
JObject obj = JObject.Load(reader);
System.Windows.MessageBox.Show((string)obj["Country"]);
DataTable sortedFileData = JsonConvert.DeserializeObject<DataTable>((string)obj["Data"]);
}
}
}
string sorted = "Name ASC, Age ASC, Date ASC";
DataView dtView = new DataView(sortedFileData) {Sort = sorted};
サンプルJSON:
{
"Country": "England",
"Data": [
{
"Name": "Bill",
"Age": "70",
"Date": "2015-05-27"
},
{
"Name": "Sara",
"Age": "36",
"Date": "2015-01-21"
},
{
"Name": "Bob",
"Age": "7",
"Date": "2011-05-24"
}
]
}
whileループの外側(おそらく 'DataTable sortedPlotFileData = new DataTable();の代わりに/の近く)に' List 'を作成し、whileループの内側にこのテーブルを追加できますか? –
質問を詳しく教えてください。あなたは 'sortedPlotFileData'を' sortedFileData'に脱塩しようとしていますか? – HEGDE
申し訳ありませんが、私はそれを逃した。上記の質問を編集して例をさらに単純化しました。 – ctalley5