輸出結果:
{"Test":[{"number":1},{"number":2},{"number":3},{"number":4},{"number":5},{"number":6},{"number":7},{"number":8},{"number":9},{"number":10}]}
讀取結果:
Test number 1 number 2 number 3 number 4 number 5 number 6 number 7 number 8 number 9 number 10
Code:
using Newtonsoft.Json; using System; using System.IO; using System.Text; using System.Windows.Forms; namespace TestProject { public partial class Form1 : Form { private readonly String PATH = String.Format(@"{0}\test.txt", Directory.GetCurrentDirectory()); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //JSON寫入到檔案 using (StringWriter sw = new StringWriter()) { using (JsonTextWriter writer = new JsonTextWriter(sw)) { //建立物件 writer.WriteStartObject(); //物件名稱 writer.WritePropertyName("Test"); //建立陣列 writer.WriteStartArray(); for (int index = 1; index <= 10; index++) { //建立物件 writer.WriteStartObject(); //設定屬性名稱 writer.WritePropertyName(String.Format("number", index)); //設定值 writer.WriteValue(index); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); writer.Flush(); writer.Close(); sw.Flush(); sw.Close(); //將文字寫入該檔案 File.WriteAllText(PATH, sw.ToString(), Encoding.UTF8); } } //讀取JSON檔案 using (StreamReader sr = new StreamReader(PATH, Encoding.UTF8)) { using (JsonTextReader reader = new JsonTextReader(sr)) { while (reader.Read()) if (reader.Value != null) Console.WriteLine(reader.Value.ToString()); //讀取Int //reader.ReadAsInt32().Value //結束讀取 reader.Close(); sr.Close(); } } } } }
除了可以取得String的型態,也可透過JsonTextReader的ReadAsXXX().Value來取得不同型態的資料