浅谈C#.NET、JavaScript和JSON

2019-12-30 16:19:49王振洲

string deJson = stuJson;
      Dictionary<string, string> deStu = js.Deserialize<Dictionary<string, string>>(deJson);
      Console.WriteLine("使用 JavaScriptSerializer 类将JSON格式数据反序列化指定类:");
      foreach (string s in stu.Keys)
      {
        Console.WriteLine(s.ToString() + "=" + stu[s].ToString());
      }
      Console.ReadLine();

示例:JSON单对象反序列化

运行结果:

 C#.net,javascript,json

 2、使用第三方支持的 Json.net(newtonsoft.json)类库对JSON数据序列化和反序列化:

  参考地址:http://www.easck.com/json

六、JavaScript与JSON

 1、JavaScript中自定义JSON字符串并解析;

  例子:学生赵大信息:


function myJson() {
      var stu = { "id": "1", "name": "赵大", "age": "27", "gender": "男", "school": { "class": "03", "teacher": "赵大的老师" } };
      alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender);
    }

效果图:

 C#.net,javascript,json

 可以看到自定义的JSON字符串后,在使用stu这个对象可以自动识别为成员变量了。

   2、从后台传入的JSON数据通过解析后转化为JSON数据对象:

  例子:学生赵大信息(这里的Ajax请求用JQuery处理了):


$(document).ready(function () {
      $.ajax({
        url: "AjaxWeb.ashx",
        type: "GET",
        dataType: "JSON",
        success: function (data) {
          var stu = JSON.parse(data);
          alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender + ", " + "teacher=" + stu.school["teacher"]);
        },
        error: function (e) {
          alert(e.toString());
        }
      })
    })

从后台获取JSON字符串后转化为JSON对象

public void ProcessRequest(HttpContext context)
    {
      context.Response.Write(myJson2());
    }
    private string myJson2()
    {
      string json = " {"id": "1", "name": "赵大", "age": "27", "gender": "男", "school": { "class": "03", "teacher": "赵大的老师" }}";
      JavaScriptSerializer js = new JavaScriptSerializer();
      json = js.Serialize(json);
      return json;
    }

后台处理文件代码