个人 问题、答案、总结

一、将通过JSON数据放到页面。

var refFaresJson = eval('(' + '<%=GenRefFaresJson()%>' + ')');//BO得到数据。

数据JSON格式:{“tkt”:"fare",“tkt”:"fare",“tkt”:"fare",“tkt”:"fare".....}

JS拿到数据后  refFaresJson该JSON对象显示的数据顺序给BO给的一样。

//简单举例:
执行 for(var tkt in refFaresJson){

tkt+"..........."+refFaresJson[tkt]

}

出来数据的顺序就不对了。在IE,FireFox顺序与BO得到的数据顺序一样。但是Chrome 就不是了.

查阅得知:http://w3help.org/zh-cn/causes/SJ9011 // 查询自:http://segmentfault.com/q/1010000000327993

其实知道for-in不行后,我又尝试了用Object.Keys(refFaresJson),但是这样取到的Key的顺序还是跟for-in时候的一样。所以个人估计:

遵循新版 ECMA-262 第五版规范的Chrome Opera 的 JavaScript 解析引擎,使用 例如for-in 语句遍历对象属性时遍历书序都并非属性构建顺序


所以改成用JSON数组:

数据JSON格式变成::[{"ticket":"tkt","fare":"faredata"},{"ticket":"tkt","fare":"faredata"}{"ticket":"tkt","fare":"faredata"}...]

JS拿到数据后:

  $(refFaresJson).each(function () {       

                           this.ticket+"..........."+this.fare;
            });

这样就OK了。

还有一小问题就是:在组装JSON数组过程中:

 StringBuilder sb = new StringBuilder();
            string s ="{\"{0}\":\"{1}\"}";
            foreach (KeyValuePair<string, string> item in d)
            {
                sb.AppendFormat(s, item.Key, item.Valued);
            }
报错:string转换成DataTime 出错...

得找个时间好好看一看...


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值