如何解析js读出的json数据 {"code":"1","msg":"u6210u529f"#

JavaScript018

如何解析js读出的json数据 {"code":"1","msg":"u6210u529f"#,第1张

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种基本结构,简单的讲,大括号 {} 括起来的是普通对象,中括号括 [] 括起来的是数组.两种结构可以组合使用.就像上面那个例子.