我需要在一些文本文件,客户和书籍中存储与库相关的一些数据。 我一直在搜索如何使用JSON将数据保存到文本文件中,但我无法理解代码或我应该调用的命名空间。
我正在寻找典型的JSON结构,如:
{
"name": "John Doe",
"address": "Street of whatever",
"ID": 123456789,
"telephone": 123443221,
"gender": "M",
"prefgenres": {
"adventure": true,
"romance": false,
"police": true,
"scifi": false
}
}
答案 0 :(得分:3)
尝试JSON.Net,使用起来非常简单。
为了简化您的研究,如果您只想序列化一个简单的对象,您可以这样做:
using System.IO;
using Newtonsoft.Json;
namespace test
{
public void writeObject( object myObj){
using (StreamWriter myFile = new StreamWriter(myPath))
{
newFile.WriteLine(JsonConvert.SerializeObject(myObj));
}
}
}
要反序列化您的数据,您可以使用:
using System.IO;
using Newtonsoft.Json;
namespace test
{
public MyObject readObject(){
var result;
using (StreamReader file = new StreamReader(myPath))
{
result = JsonConvert.DeserializeObject<MyObject>(file.ReadToEnd());
file.Close();
}
return result;
}
} //Notice that "MyObject" could be even a collection of your objects, like List<Customer> and you can deserialize all in once.
答案 1 :(得分:0)
你的模特
[Serializable]
class Contact
{
public string name { get; set; }
public string address { get; set; }
public Contact()
{
}
}
保存方法
internal static class Source
{
internal static bool Save<T>(T data, string saveFilePath)
{
var ser = new XmlSerializer(typeof(T));
using (var sw = new StreamWriter(saveFilePath, false, Encoding.UTF8))
{
using (var usw = new Utf8StringWriter())
{
ser.Serialize(usw, data);
sw.Write(usw.ToString());
}
}
return true;
}
}
调用保存方法
Source.Save(contactmodel, "contact.txt");