净,我只想读取一个Json并想更新或添加JSON中的节点。我已经为此使用了Angular和PHP,并且能够轻松读取和写入文件。但是我的服务器现在是IIS,所以我想解析C#上的JSON文件并想要更改其中的值。
我在Google上搜索了很多,发现了很多JSON.NET或Newtonsoft.Json的解决方案。我只有一个index.aspx页面,在这里我能够成功读取json文件,如下所示
string json = System.IO.File.ReadAllText(Server.MapPath("json/myJsonFile.json"));
Response.Write(json);
这可以轻松地在Web上打印JSON文本。但是我无法正确解析它。我用Notepad ++编写代码,因为我没有Visual Studio,也不想安装。我听说.net代码现在是开源的,所以我从Notepad ++进行了尝试。现在,请让我知道,如何在不使用Visual Studio的情况下解析JSON?
我的代码更详细如下
index.aspx
<%@ Page Language="C#" %>
<!Doctype html>
<html>
<body>
<form action="index.aspx" method="post" enctype="multipart/form-data" runat="server">
<input type="text" id="empname" name="empname" placeholder="Enter Full Name"/>
<p><button id="addBtn" class="btn btn-success" onclick='return addEmployee()' type="submit">Add</button> <button id="removeBtn" class="btn btn-success" onclick='removeEmployee()'>Remove</button></p>
</form>
<%
string ename = Request.Form["empname"];
string json = System.IO.File.ReadAllText(Server.MapPath("json/myJsonFile.json"));
Response.Write(json);
//Here i want to parse JSON file
%>
</body>
</html>
Java脚本
function addEmployee()
{
if($("#empname").val() == "")
{
alert("Please type Name.");
$("#empname").focus();
return false;
}
return true;
}
JSON格式
[
{
"ID": "ID01",
"Name": "First One"
},
{
"ID": "ID02",
"Name": "Second One"
}
]
记住我是用Notepad ++编写代码的,所以请相应地告诉我。提前致谢。
不推荐使用JavaScriptSerializer,Microsoft建议使用Json.NET。
在您的aspx页面中,链接到Json.NET:
<%@ Assembly Name="Newtonsoft.Json" %>
<%@ Import namespace="Newtonsoft.Json" %>
为员工上课:
public class Employee
{
public string ID { get; set; }
public string Name { get; set; }
}
添加对Json.NET的引用:
using Newtonsoft.Json;
从磁盘反序列化您的Json:
List<Employee> list = JsonConvert.DeserializeObject<List<Employee>>(json);
// ...
list.Add(employee);
// deserialize + save
string json = JsonConvert.SerializeObject(list);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句