Json在.NET中的解析

  Json是一种类XML的存储数据的格式,{}代表保存的一个对象,其中有多个键值对name:value,[]代表数组,一个数组可以保存多个对象。

{
"employees": [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
]
}

   一、前台将Json传给后台解析

   前台利用ajax技术异步刷新页面,将数据传给后台:

 $.ajax({
            type: "post", //post或get,是数据传递的方式
            url: "Group.aspx/ChangeGroup", //将数据传送给哪个页面或哪个方法
            contentType: "application/json;charset=utf-8", //数据的编码方法
            dataType: "json", //数据的类型
            data: "{\"data\":\"{'list':[117042815055358939],'id':2}\"}", //数据本体
            success: function (res) {
                alert(res.d);
            },
            error: function (xmlReq, err, c) {
                alert("error:" + err);
            } //传递数据成功或失败对应的方法
        });

   后台为了解析数据,要先对应数据的内容给每一个对象建立对应的类。如果是多层的Json数据,则要新建若干嵌套类。

public class data
{
public List<string>list;
public int id;
public data()
{
list = new List<string>();
}
}

   接下来开始解析,这是反序列化操作,目的是将字符串转换为对象。

using System.Web.Script.Serialization;
public string analysis(string str)
{
JavaScriptSerializer ser = new JavaScriptSerializer(); data main = ser.Deserialize(str); return main;
}

   反之则是序列化,目的则是将对象转换为字符串。

JavaScriptSerializer ser = new  JavaScriptSerializer();
String str = ser.Serialize(obj); //同样支持对象数组

   更为简单的操作是直接取出值。

int id = Request.QueryString["id"];

  二、服务器将Json传递给前台显示

var obj=eval("("+data+")");

   在Json字符串两边加上括号是为了强制eval函数将data转换为对象,而不是作为语句块来处理。

   如果使用$.getJSON()函数,则返回的已经是对象,不用进行字符串向对象的转换。

 

 

转载于:https://www.cnblogs.com/powerCat/p/6813328.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值