私は高値と低値、遠くて広い値を検索してこの解決策を探し、最後の数週間は自分のソリューションを実装しようとしましたが、何でも既存のJSONファイルに新しいデータを追加する
私は非常にすべてのヘルプに感謝します!
私のように見えるファイル、(file.json)があります。
{
"Expense": {
"Name": "OneTel Mobile Bill",
"Amount": "39.90",
"Due": "28/12/2011",
"Recurrence": "1 Months",
"Paid": "0",
"LastPaid": "01/01/2002"
}
}
そして、私のアプリでは、私は新しい「費用」を作成したとき、私はこの既存にその新しい費用を追加したいがJSONファイルは、それはそうのようになります。
{
"Expense": {
"Name": "OneTel Mobile Bill",
"Amount": "39.90",
"Due": "28/12/2011",
"Recurrence": "1 Months",
"Paid": "0",
"LastPaid": "01/01/2002"
},
"Expense": {
"Name": "Loan Repayment",
"Amount": "50.00",
"Due": "08/03/2012",
"Recurrence": "3 Months",
"Paid": "0",
"LastPaid": "08/12/2011"
}
}
そして、これは私がJSONを作成し、ファイルに書いている方法です:
async public void WriteToFile(string type, string data)
{
file = await folder.GetFileAsync(file.FileName);
IRandomAccessStream writestream = await file.OpenAsync(FileAccessMode.ReadWrite);
IOutputStream outputstream = writestream.GetOutputStreamAt(0);
DataWriter datawriter = new DataWriter(outputstream);
datawriter.WriteString(data);
await datawriter.StoreAsync();
outputstream.FlushAsync().Start();
}
private void CreateExpenseButton_Click(object sender, RoutedEventArgs e)
{
//Create the Json file and save it with WriteToFile();
JObject jobject =
new JObject(
new JProperty("Expense",
new JObject(
new JProperty("Name", NameTextBox.Text),
new JProperty("Amount", AmountTextBox.Text),
new JProperty("Due", DueTextBox.Text),
new JProperty("Recurrence", EveryTextBox.Text + " " + EveryComboBox.SelectionBoxItem),
new JProperty("Paid", "0"),
new JProperty("LastPaid", "Never")
)
)
);
try
{
WriteToFile(Expenses, jobject.ToString());
// Close the flyout now.
this.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
catch (Exception exception)
{
Debug.Write(exception.Message);
}
}
James Newton KingのJson.NETライブラリを使用していますが、これはかなり素晴らしいですが、付属のドキュメントを読んだ後でも、JSONファイルを読み込んでデータを追加する方法は全くありません。
これがどのように行われているかを示すサンプルがありますか、これを達成するために別のライブラリをC#におすすめできますか?
編集
これは私がJSONファイルから単一の費用を読んでいるかである:
JObject json = JObject.Parse(data);
Expense expense = new Expense
{
Amount = (string)json["Expense"]["Amount"],
Due = (string)json["Expense"]["Due"],
Name = (string)json["Expense"]["Name"]
};
Debug.Write(expense.Amount);
ファイルを読んだことはありますか?データをオブジェクトに逆シリアル化しますか? – Oded
私は自分の質問を更新し、ファイルからどのように読んだかを含めています。しかし、それは別の問題です。私は1つの '費用'を読む方法を知っていますが、今は1つのファイル内の複数の費用から値を読み取る方法を知っています。尋ねていただきありがとうございます。 – Jason