我正在处理一个文件来添加/检索数据.数据格式是JSON.我是新手.我正在使用JSON.NET来序列化和反序列化数据.这是json格式
{
"EmpId": 1,
"Name": "Kaushik",
"Designation": ".net Developer",
"JoiningDate": "09/23/2013",
"Skill": [
{
"Id": 1,
"SkillName": "C#"
},
{
"Id": 2,
"SkillName": "PHP"
},
{
"Id": 3,
"SkillName": "java"
}
]
}
这是我正在研究的JSON格式.问题描述
[
{
"EmpId": 1,
"Name": "Kaushik",
"Designation": ".net Developer",
"JoiningDate": "09/23/2013",
"Skill": [
{
"Id": 1,
"SkillName": "C#"
},
{
"Id": 2,
"SkillName": "PHP"
},
{
"Id": 3,
"SkillName": "java"
}
]
},
{
"EmpId": 1,
"Name": "Kaushik",
"Designation": ".net Developer",
"JoiningDate": "09/23/2013",
"Skill": [
{
"Id": 1,
"SkillName": "C#"
},
{
"Id": 2,
"SkillName": "PHP"
},
{
"Id": 3,
"SkillName": "java"
}
]
} ]
所以主要的问题是我没有得到附加文件的确切逻辑.
我正在通过char读取char文件,如下所示
int count = 0;
EmployeeDetail employee = new EmployeeDetail
{
EmpId = ++count,
Name = formCollection["Name"],
Designation = formCollection["Designation"],
JoiningDate = formCollection["JoiningDate"],
Skill = new List
{
new Skills(){Id = 1, SkillName = "C#"},
new Skills(){Id = 2, SkillName = "PHP"},
new Skills(){Id = 3, SkillName = "java"}
}
};
string json = JsonConvert.SerializeObject(employee,Formatting.Indented);
var dataFile = Server.MapPath("~/App_Data/json_data.json");
//Reading the file
StreamReader reader = new StreamReader(dataFile);
int Tchar = 0;
char ch;
do
{
ch = (char)reader.Read();
Response.Write(ch);
Tchar++;
} while (!reader.EndOfStream);
reader.Close();
StreamWriter file = new StreamWriter(dataFile,append:true);
file.WriteLine(json);
file.Close();
所以任何帮助表示赞赏谢谢
GON*_*ale 19
您最好和最可靠的方法是不附加到文件,而是读取整个JSON文件并反序列化为对象,附加到对象集合,然后将输出序列化回JSON文件.
我为你创建了这个示例(相应地更改路径和类):
var filePath = @"C:\Users\grahamo\Documents\Visual Studio 2013\Projects\WebApplication1\WebApplication1\bin\path.json";
// Read existing json data
var jsonData = System.IO.File.ReadAllText(filePath);
// De-serialize to object or create new list
var employeeList = JsonConvert.DeserializeObject<List<EmployeeDetail>>(jsonData)
?? new List<EmployeeDetail>();
// Add any new employees
employeeList.Add(new EmployeeDetail()
{
Name = "Test Person 1"
});
employeeList.Add(new EmployeeDetail()
{
Name = "Test Person 2"
});
// Update json data string
jsonData = JsonConvert.SerializeObject(employeeList);
System.IO.File.WriteAllText(filePath, jsonData);
Run Code Online (Sandbox Code Playgroud)
如果我是新人,如果我帮助你,可以选择投票或打勾.
| 归档时间: |
|
| 查看次数: |
19933 次 |
| 最近记录: |