一个Access数据库包含若干首诗歌,每首诗有content、author、title、description四个字段
using System;
using System.Data;
using System.Data.OleDb;
using System.Runtime.Serialization.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Runtime.Serialization;
[DataContract]
struct Poem {
[DataMember]
public string content { get; set; }
[DataMember]
public string author { get; set; }
[DataMember]
public string title { get; set; }
[DataMember]
public string description { get; set; }
}
class Haha {
public static void Main() {
string url = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=C:\\Users\\weidiao\\Desktop\\data.mdb";
OleDbConnection con = new OleDbConnection(url);
con.Open();
OleDbCommand command = new OleDbCommand("select * from t_poetry", con);
OleDbDataReader reader = command.ExecuteReader();
Console.WriteLine(reader.FieldCount);
FileStream cout = new FileStream("poem.json", FileMode.Create);
List<Poem> li = new List<Poem>();
while (reader.Read()) {
Poem p = new Poem();
p.author = reader["d_author"].ToString();
p.content = reader["d_poetry"].ToString();
p.description = reader["d_intro"].ToString();
p.title = reader["d_title"].ToString();
li.Add(p);
}
String s = ObjectToJson(li);
byte[] bytes = Encoding.UTF8.GetBytes(s);
cout.Write(bytes, 0, bytes.Length);
cout.Close();
con.Close();
}
// 从一个对象信息生成Json串
public static string ObjectToJson(object obj) {
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
return Encoding.UTF8.GetString(dataBytes);
}
}