jquery解析json ,IE 中解析正常 ,firefox chorme 解析失败

问题描述

利用服务 http://m.weather.com.cn/data/101240101.html 获取南昌天气信息,返回格式是 json ,但是利用jquery 解析的时候,IE 解析数据成功正常显示,FireFox chrome 下解析失败,各位帮忙看看是啥原因。json格式大概如下(可以通过上面链接查看 json 完全内容): {"weatherinfo":{"city":"南昌","city_en":"nanchang","date_y":"2010年9月1日","date":"庚寅年七月廿三","week":"星期三","fchh":"11","cityid":"101240101","temp1":"32℃~26℃",......"tempF1":"89.6℉~78.8℉",......"weather1":"多云转阵雨",.....}} 页面解析代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>获取天气</title> <style type="text/css"> body{font-size:14px;font-family:微软雅黑;background:#f6f6f6;text-align: center;} </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><script type="text/javascript">jQuery(function($){getWeather();});function setWeather(tID, tCity, tTip, tWendu, tFengli , img1 , img2) {$("#jsCity").html("<a href='http://www.weather.com.cn/html/weather/" + tID + ".shtml' target=_bank>" + tCity + "</a>");var tqimg = "<img src='weatherimgs/"+img1+".gif'><img src='weatherimgs/"+img2+".gif'>";$("#jsWeather").html(tqimg + tTip + " " + tWendu);}function getWeather() {var weajs = "http://m.weather.com.cn/data/101240101.html";$.getJSON(weajs, function (objJson) {var cityname = objJson.weatherinfo.city; //南昌var id = objJson.weatherinfo.cityid; //101240101var cityinfo1 = objJson.weatherinfo.weather1; //天气var cityinfo2 = objJson.weatherinfo.weather2;var wd1 = objJson.weatherinfo.wind1;//风向var wd2 = objJson.weatherinfo.wind2;var fl1 = objJson.weatherinfo.fl1;//风力var fl2 = objJson.weatherinfo.fl2;var temp1 = objJson.weatherinfo.temp1;//温度var temp2 = objJson.weatherinfo.temp2;var img1 = objJson.weatherinfo.img1;//天气图标1var img2 = objJson.weatherinfo.img2;//天气图标2var img3 = objJson.weatherinfo.img3;var img4 = objJson.weatherinfo.img4;var index = objJson.weatherinfo.index;var index_d = objJson.weatherinfo.index_d;var index_xc = objJson.weatherinfo.index_xc;var index_uv = objJson.weatherinfo.index_uv;var date = objJson.weatherinfo.date;var date_y = objJson.weatherinfo.date_y;var imgtitle1 = objJson.weatherinfo.img_title1;var imgtitle2 = objJson.weatherinfo.img_title2;var imgsingle = objJson.weatherinfo.img_single;var imgtitlesingle = objJson.weatherinfo.img_title_single;setWeather(id, cityname, cityinfo1, temp1, wd1, img1, img2);});}</script> </head> <body><div><span id='jsCity'>南昌</span><span id='jsWeather'>loading...</span></div><div id="show"></div> </body></html> 页面运行后,IE 中解析正常 如下图, firefox chrome 却解析失败。

解决方案

问题并不是出在解析本身,而是跨域访问问题。这是基于安全的考虑。你需要在服务器端请求这个地址,并将请求结果返回到客户端的脚本中。否则是一个失败的请求,也就是说这时候$.getJSON的回调函数干脆不会执行,更谈不上解析了。
解决方案二:
"index_ls":"不太适宜"后面加一个“,”试试!
解决方案三:
是不是数据有问题?检查一下,我记得json数据格式最后有一个“,”,IE和Firefox会不一致。

时间: 2024-10-27 20:30:26

jquery解析json ,IE 中解析正常 ,firefox chorme 解析失败的相关文章

jquery获取JSON对象中数据的示例

 这篇文章主要介绍了jquery获取JSON对象中数据的示例,代码中有注释,大家参考使用吧    代码如下: $.ajax({             url: '这个地址要换成你自己的',             data: {S_CourseID: courseid , CurrTime : new Date().getTime()}, //加个时间戳,否则会不自动更新数据             dataType: 'json',             success: function

js使用eval解析json(js中使用json)_javascript技巧

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(

jquery利用json实现页面之间传值的实例解析_jquery

首先,A页面利用按钮打开B页面 function SelectUnit() { OpenDialogBox(epoint.url.getAbsoluteUrl("PK_UserSelect.aspx"), '', "选择人员", AfterOpen, 800, 800); } 在这个方法中调用afateropen 方法,A页面前台页面绑定B页面传过来的json值 function AfterOpen(rtnStr) { var json = rtnStr; $(&q

用java解析json 格式的字符。该如何解析

问题描述 6.1.1:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],6.1.2:[object Object],[object Object],[object Object],[object Object],[object O

SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的_jquery

json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位.Json的语法非常简单,采用的是键值对表示形式.JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序,也可以从服务器端程序传递json格式的字符串给前端并由前端解释.这个字符串是符合json语法的,而json语法又是 javascript语法的子集,所以javascript很容易解释它,而且

jQuery怎么解析Json字符串(Json格式/Json对象)_jquery

json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法. 我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: { "comments": [ { "content": "很不错嘛", "id": 1, "nickname&

java json 解析-json字符串的取出问题

问题描述 json字符串的取出问题 别人给我发了一个json字符串,我想将其中的键值对一一取出.json里有我自定义类型的对象,和普通string类型的值,求教各位大神我应该怎么写这个方法. 解决方案 如果用java解析json的话,可以用json-lib进行解析,其实用法很简单,可以直接把json数据映射成自定义的java对象. 参考:http://blog.csdn.net/zhejingyuan/article/details/9180885 解决方案二: var json = '[{"i

JavaScript转换与解析JSON方法实例详解_javascript技巧

本文实例讲述了JavaScript转换与解析JSON方法.分享给大家供大家参考,具体如下: json格式数据如下: var json = { 'jquery': [{ "id": "1", "type": "ASP.NET", "title": "JSON全解析"}] } alert(json.jquery[0].id); alert(json.jquery[0].type); aler

JQuery中ajax不能解析json

问题描述 JQuery中ajax不能解析json Action: @Controller @Scope("prototype") @Namespace("/") @ParentPackage("json-default") public class OaAction extends ActionSupport private String name; private String pass; private String msg; @Action