jquery解析json的例子

本文介绍如何在服务器端使用C#创建JSON对象,并将其转换为JSON字符串的过程。通过实例演示了如何初始化对象,添加数据,以及如何通过JavaScript将JSON字符串转换为JSON对象,最终获取数据信息。

首先我们做一个生成json的类
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Web.Script.Serialization;
namespace LineExamBLL
{
  public class JSONHelp  
    {  
        //是否成功  
        private bool success;  
        //错误提示信息  
        private string error;  
        //总记  
        private int totalCount;  
        //数据  
        private string singleInfo;  
 
        private ArrayList arrData;
 
        #region 初始化JSONHelp的所有对象  
        public JSONHelp()   
        {  
            error = string.Empty;  
            singleInfo = string.Empty;  
            totalCount = 0;  
            success = false;  
            arrData = new ArrayList();  
        } 
        #endregion 
 
        #region 重置JSONHelp的所有对象  
        public void ResetJSONHelp()   
        {  
            error = string.Empty;  
            singleInfo = string.Empty;  
            totalCount = 0;  
            success = false;  
            arrData.Clear();  
        } 
        #endregion 
 
        #region 对象与对象之间分割符  
        public void addItemOk()   
        {  
            arrData.Add("<br>");  
        } 
        #endregion 
 
        #region 在数组里添加key,value  
        public void addItem(string name,string value)   
        {  
            //json对象中如果有换行就会解析错误,所以我用<br/>先代替着
            //以后赋值的时候<br/> 再用\n代替          :)有点傻
             value = value.Replace("\n", "<br/>");
            arrData.Add("" + name + ":" + "\'" + value + "\'");  
        } 
        #endregion 
 
        #region 返回组装好的json字符串  
        public override string  ToString()   
        {  
            StringBuilder sb = new StringBuilder();  
            sb.Append("{");  
            sb.Append("totalCount:\'" + this.totalCountS + "\',");  
            sb.Append("error:\'" + this.errorS + "\',");  
            sb.Append("success:\'" + this.successS + "\',");  
            sb.Append("data:[");  
 
            int index = 0;  
            sb.Append("{");  
            if (arrData.Count <= 0)  
            {  
                sb.Append("}]");  
            }  
            else 
            {  
                foreach (string val in arrData)  
                {  
                    index++;  
 
                    if (val != "<br>")  
                    {  
                        sb.Append(val + ",");  
                    }  
                    else 
                    {  
                        sb = sb.Replace(",", "", sb.Length - 1, 1);  
                        sb.Append("},");  
                        if (index < arrData.Count)  
                        {  
                            sb.Append("{");  
                        }  
                    }  
                     
                }  
                sb = sb.Replace(",", "", sb.Length - 1, 1);  
                sb.Append("]");  
            }  
              
            sb.Append("}");  
            return sb.ToString();  
 
        } 
        #endregion  
        public string errorS   
        {  
            get   
            {  
                return this.error;  
            }  
            set   
            {  
                this.error = value;  
            }  
        }  
 
        public bool successS   
        {  
            get   
            {  
                return this.success;  
            }  
            set   
            {  
                this.success = value;  
            }  
        }  
 
        public int totalCountS  
        {  
            get   
            {  
                return this.totalCount;  
            }  
            set   
            {  
                this.totalCount = value;  
            }  
        }   
 
    } 
      
}

在服务器端C#生成json对象
 JSONHelp jsonhelp = new JSONHelp();
        jsonhelp.successS = true;
        jsonhelp.addItem("titleID", "1");
        jsonhelp.addItem("uAnswer", "A,B,C");
        jsonhelp.addItemOk();
        jsonhelp.addItem("titleID", "2");
        jsonhelp.addItem("uAnswer", "B,C");
        jsonhelp.addItemOk();
        jsonhelp.addItem("titleID", "3");
        jsonhelp.addItem("uAnswer", "C");
        jsonhelp.addItemOk();
        jsonTest = jsonhelp.ToString();

客户端获得jsonTest 这个字符串然后用evel方法生成json对象
  <input type="hidden" id="jsdate" value="<%=jsonTest %>" /> 为了接受到服务器端的字符串用一个隐藏变量
    $().ready(function() {
            $("#btntest").click(function() {
                var datastr = $("#jsdate").val();
                alert(datastr);
                 var dataObj = eval("(" + datastr + ")"); //转换为json对象
                alert(dataObj.data.length);//获得data的长度
                  $.each(dataObj.data, function(idx, item) {
                   alert("titleID:" + item.titleID + "uAnswer:" + item.uAnswer);
                });
            })

        })
jquery中的replace方法只能替换第一个。所以要替换掉所有的<br/>要做个循环

var answer = answer.replace("<br/>", "\n")

                    while (answer.indexOf("<br/>") >= 0) {
                        var answer = answer.replace("<br/>", "\n")
                     }


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值