public void Writejson(int index, List <ConfigsItem> configs, string path) { //子集 //Hashtable device = new Hashtable(); //device.Add("id", "001111"); //device.Add("name", "相机"); //device.Add("ip", "192.168.1.1"); GoProxyCongfigs lot = new GoProxyCongfigs(); //实体模型类 //lot.Name = "lotname"; //lot.Address = "wenzhou"; lot.index = index; lot.configs = configs; //注意是子集 //lot.Doors = "4"; //序列化 string js1 = JsonConvert.SerializeObject(lot); //string js2 = JsonConvert.SerializeObject(device); //反序列化 GoProxyCongfigs debc1 = JsonConvert.DeserializeObject <GoProxyCongfigs>(js1); //LotModel debc2 = JsonConvert.DeserializeObject<LotModel>(js2); //找到服务器物理路径 //string serverAppPath = Request.PhysicalApplicationPath.ToString(); //string serverAppPath = @"d:\"; //构成配置文件路径 //string con_file_path = @"" + serverAppPath + @"config.json"; string con_file_path = path; if (!File.Exists(con_file_path)) { //File.Create(con_file_path); File.Create(con_file_path).Close(); } //把模型数据写到文件 using (StreamWriter sw = new StreamWriter(con_file_path)) { JsonSerializer serializer = new JsonSerializer(); serializer.Converters.Add(new JavaScriptDateTimeConverter()); serializer.NullValueHandling = NullValueHandling.Ignore; //构建Json.net的写入流 JsonWriter writer = new JsonTextWriter(sw); //把模型数据序列化并写入Json.net的JsonWriter流中 serializer.Serialize(writer, lot); //ser.Serialize(writer, ht); writer.Close(); sw.Close(); } }
//读取json文件 private void InitConfig() { configs.Clear(); listBox1.Items.Clear(); //读取文件 string jsonfile = jsonconfigpath; if (!File.Exists(jsonfile)) { //File.Create(con_file_path); int index = 0; ConfigsItem configsItem = new ConfigsItem(); configsItem.server = "your.domain or ip";//ip configsItem.server_port = 8880; configsItem.server_type = "http"; configsItem.server_mode = "ws"; configsItem.method = "aes-256-cfb"; configsItem.password = "******"; configs.Add(configsItem); Writejson(index, configs, jsonconfigpath); configs.Clear(); } //把模型数据写到文件 using (System.IO.StreamReader file = System.IO.File.OpenText(jsonfile)) { string json = file.ReadToEnd(); rb = JsonConvert.DeserializeObject <GoProxyCongfigs>(json); mainIndex = rb.index; maxIndex = rb.configs.Count() - 1; int n = 0; foreach (ConfigsItem e in rb.configs) { if (n == mainIndex) { textBox3.Text = e.server;//ip textBox6.Text = e.server_port.ToString(); comboBox2.Text = e.server_type; comboBox1.Text = e.server_mode; comboBox4.Text = e.method; textBox7.Text = e.password; } listBox1.Items.Add(e.server + ":" + e.server_port.ToString() + "\n"); // MessageBox.Show(n.ToString()); n++; configs.Add(e); } } //Writejson(configs, @"config0000.json"); }