unescape('\u4ec5\u552e12.8\u5143\uff01\u4ef7\u503c634\u5143\u7684E\u5149\u51b0\u70b9\u8131\u6bdb\/\u70b9\u7a74\u51cf\u80a5\u5851\u5f622\u90091\u5957\u9910\uff0c\u7537\u5973\u4e0d\u9650\uff0c\u63d0\u4f9b\u514d\u8d39WiFi\u3002\u8ba9\u7f8e\u4e3d\u7efd\u653e\uff0c\u8ba9\u9752\u6625\u6c38\u9a7b\uff01')
以下是几种js读出的json数据的方式:
var json = { contry:{ area:{ man:"12万", women:"10万" } } }
方式一:使用eval解析 var obj = eval(json) alert(obj.constructor)alert(obj.contry.area.women) //
方式二:使用Funtion函数
var strJSON = "{name:'json name'}"//得到JSON var obj = new Function("return" + strJSON)()//转换后的JSON对象 alert(obj.name)//json name alert(obj.constructor)
复杂一点的json数组数据的解析 var value1 = [{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}] var obj1 = eval(value1) alert(obj1[0].c01) /
复杂一点的json的另一种形式
var value2 = {"list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"}], "array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]} var obj2 = eval(value2) alert(obj2.list[0].password)
(function($){$.toJSON=function(o){if(typeof(JSON)=='object'&&JSON.stringify)
return JSON.stringify(o)var type=typeof(o)if(o===null)
return"null"if(type=="undefined")
return undefinedif(type=="number"||type=="boolean")
return o+""if(type=="string")
return $.quoteString(o)if(type=='object')
{if(typeof o.toJSON=="function")
return $.toJSON(o.toJSON())if(o.constructor===Date)
{var month=o.getUTCMonth()+1if(month<10)month='0'+monthvar day=o.getUTCDate()if(day<10)day='0'+dayvar year=o.getUTCFullYear()var hours=o.getUTCHours()if(hours<10)hours='0'+hoursvar minutes=o.getUTCMinutes()if(minutes<10)minutes='0'+minutesvar seconds=o.getUTCSeconds()if(seconds<10)seconds='0'+secondsvar milli=o.getUTCMilliseconds()if(milli<100)milli='0'+milliif(milli<10)milli='0'+millireturn'"'+year+'-'+month+'-'+day+'T'+
hours+':'+minutes+':'+seconds+'.'+milli+'Z"'}
if(o.constructor===Array)
{var ret=[]for(var i=0i<o.lengthi++)
ret.push($.toJSON(o[i])||"null")return"["+ret.join(",")+"]"}
var pairs=[]for(var k in o){var namevar type=typeof kif(type=="number")
name='"'+k+'"'else if(type=="string")
name=$.quoteString(k)else
continueif(typeof o[k]=="function")
continuevar val=$.toJSON(o[k])pairs.push(name+":"+val)}
return"{"+pairs.join(", ")+"}"}}$.evalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src)return eval("("+src+")")}$.secureEvalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src)var filtered=srcfiltered=filtered.replace(/\\["\\\/bfnrtu]/g,'@')filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']')filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'')if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")")else
throw new SyntaxError("Error parsing JSON, source is not valid.")}$.quoteString=function(string)
{if(string.match(_escapeable))
{return'"'+string.replace(_escapeable,function(a)
{var c=_meta[a]if(typeof c==='string')return cc=a.charCodeAt()return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"'}
return'"'+string+'"'}var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/gvar _meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'}})(jQuery)
把这段代码拷贝到一个文件里面,存成jquery-json.js,引用后jquery就会扩展出一个toJson的方法
例如var obj = {a:"1",b:"2"}
那么$.toJson(obj) 就是字符串 "{'a':'123','b':'333'}";
上面的插件是googlecode里面的,不是原创,只不过我发个链接会被百度审核N久,所以直接把人家的代码贴过来了
ajax取回数据,把响应的json格式的字符串转换成 json对象(具体怎么转有很多方法,如果不清楚可以再问).具体怎么得到你想要的数据,就拿你这个[{"uid":1,"uname":"York","tag":{"2":"beijing","6":"chaoyang"}},{"uid":4,"uname":"Lee","tag":{"2":"beijing","8":"haidian"}}]数据来讲吧.
这个json字符串转换成的json对象完全可以当成一个一维数组来处理(这个不是多维哦~),它里面有2个对象,就这样.
想明白这个取数据就简单了吧.
比如得到的字符串为data ,要得到一个对象的uname,js可以这么写
var json_obj = eval(data)
var uname_1 = json_obj[0].uname
OK,uname_1就是结果。
应该明白了吧。
楼下讲的根本不对.json的构建有2种基本结构,简单的讲,大括号 {} 括起来的是普通对象,中括号括 [] 括起来的是数组.两种结构可以组合使用.就像上面那个例子.