(java gui) 和 (网页 js)通过url传值(如json)时,注意问题

    xiaoxiao2026-05-21  11

    (java gui) 和 (网页 js)  通过url传值时,如果不涉及特殊字符可以不进行编码,

    但是如果有特殊字符,比如中文,及符号 就要进行编码。

    java 使用 java.net.URLEncoder.encode(str, "UTF-8");编码, java 使用java.net.URLDecoder.decode(str,"UTF-8");解码, js 使用decodeURIComponent(str);解码 js  使用 encodeURIComponent(str)编码js获得url中传的值 <Script language="javascript">//用于获取url中的传的值 function GetRequest() {   var url = location.search; //获取url中"?"符后的字串    var theRequest = new Object();    if (url.indexOf("?") != -1) {       var str = url.substr(1);       strs = str.split("&");       for(var i = 0; i < strs.length; i ++) {          theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1]);       }    }    return theRequest; } </Script>js  解析json字符串 原始数据  var jsonStr= "{name:'1',value:'0'}" var json=eval("("+jsonStr+")");//jsonStr为json字符串,也就是从url中获得的,要把他转化成json对象 获得name值 var name=json.name;注意 为什么要 eval这里要添加 “("("+data+")");//”呢? 原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句 块来处理,所以必须强制性的将它转换成一种表达式。 加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为 对象,而不是作为语 句(statement)来执行。js解析 json 对象 var value2 = {      "list":[       {"password":"1230","username":"coolcooldool"},       {"password":"thisis2","username":"okokok"}       ],       "array":[       {"password":"1230","username":"coolcooldool"},       {"password":"thisis2","username":"okokok"}       ] };//最外面不加引号为json对象    var obj2 = eval(value2);    alert(obj2.list[0].password); 相关资源:python入门教程(PDF版)
    最新回复(0)