java对String进行json编码 实现类似与PHP中json json_encode的解决方法
\u4e0ephp\u7684rawurldecode\u65b9\u6cd5\u5bf9\u5e94\u7684java\u662f\u600e\u4e48\u5b9e\u73b0\u7684\u4e00\uff0cjson_encode\u4f5c\u7528\uff1a
json_encode \u2014 \u5bf9\u53d8\u91cf\u8fdb\u884c JSON \u7f16\u7801\u3002
\u8bf4\u660e\uff1astring json_encode ($value )\uff0c\u8fd4\u56de value \u503c\u7684 JSON \u5f62\u5f0f\u3002
\u53c2\u6570\uff1a\u5f85\u7f16\u7801\u7684 value \uff0c\u9664\u4e86resource \u7c7b\u578b\u4e4b\u5916\uff0c\u53ef\u4ee5\u4e3a\u4efb\u4f55\u6570\u636e\u7c7b\u578b
\u8be5\u51fd\u6570\u53ea\u80fd\u63a5\u53d7 UTF-8 \u7f16\u7801\u7684\u6570\u636e\uff08\u8bd1\u6ce8\uff1a\u6307\u5b57\u7b26/\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u6570\u636e\uff09
\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u6210\u529f\u5219\u8fd4\u56de\u4e00\u4e2a\u4ee5 JSON \u5f62\u5f0f\u8868\u793a\u7684 string \u3002
\u4e8c\uff0c\u5ba2\u6237\u7aef\u7528java\u8bed\u8a00\u89e3\u7801\uff1a
\u65b9\u6cd5\u4e00\uff1a
public String unescapeUnicode(String str){
StringBuffer b=new StringBuffer();
Matcher m = Pattern.compile("\\\\u([0-9a-fA-F]{4})").matcher(str);
while(m.find())
b.append((char)Integer.parseInt(m.group(1),16));
return b.toString();
}
\u65b9\u6cd5\u4e8c\uff1a
\u76f4\u63a5\u4f7f\u7528unescapeUnicode()\u65b9\u6cd5\u89e3\u7801\u5c31\u53ef\u4ee5\u4e86\u3002
\u4f7f\u7528 json_simple.jar \u5305\u89e3\u6790
\u5728json_encode() \u51fd\u6570 \u4f7f\u7528\u53c2\u6570\uff1aJSON_UNESCAPED_UNICODEjson_encode($arr, JSON_UNESCAPED_UNICODE); \u4e5f\u53ef\u4ee5\u5c1d\u8bd5\u4f7f\u7528\u8fd9\u4e2a\u7b80\u77ed\u7684\u65b9\u6cd5\uff1afunction jsonEncodeWithCN($data) {return preg_replace(/\\\u([0-9a-f]{4})/ie, iconv('UCS-2BE', 'UTF-8', pack('H4', '$1')), json_encode($data));}\u5982\u679c\u662fphp5.4\u4ee5\u524d\u7684\u7248\u672c\u4f7f\u7528\u4ee5\u4e0b\u65b9\u6cd5 $v) {if (is_scalar($v)) {if (is_array($data)) {$data[$k] = urlencode($v);} elseif (is_object($data)) {$data->$k =urlencode($v);}} elseif (is_array($data)) {$data[$k] = ch_urlencode($v);//\u9012\u5f52\u8c03\u7528\u8be5\u51fd\u6570} elseif (is_object($data)) {$data->$k = ch_urlencode($v);}}}return$data;}$ret = ch_urlencode($data);$ret =json_encode($ret);return urldecode($ret);}\u6ce8\u610f\uff0c\u5b57\u7b26\u7f16\u7801\u5fc5\u987b\u662f utf-8 \u3002\u4f7f\u7528json_encode Json \u505a\u4e3a\u4e00\u79cd\u8f7b\u91cf\u7ea7\u7684\u6570\u636e\u4ea4\u6362\u683c\u5f0f\uff0c\u5f00\u59cb\u53d7\u5230\u9752\u7750\uff0c\u6709\u4e0e XML \u62a2\u5730\u76d8\u7684\u98ce\u5934\u3002\u800c\u8ba9\u4eba\u9ad8\u5174\u7684\u662f\uff0cphp\u4e5f\u628a json \u5e8f\u5217\u5316\u6570\u636e\u7684\u529f\u80fd\u5185\u7f6e\u6210\u51fd\u6570\u4e86\uff0c\u8fd9\u8ba9\u60f3\u4f7f\u7528json\u7684 PHPCoder \u5907\u611f\u65b9\u4fbf\u3002\u3000\u3000\u7f8e\u4e2d\u4e0d\u8db3\u7684\u662f\uff0cjson_encode / json_decode \u7cfb\u5217\u51fd\u6570\u53ea\u6709\u5728 php5.2 \u4ee5\u4e0a\u624d\u6709\u3002\u8fd9\u8ba9\u7acb\u5fd7\u5f00\u53d1\u517c\u5bb9\u6027\u5f3a\u7684PHP\u7cfb\u7edf\u7684coder\u5f88\u5934\u75db\u3002\u3000\u3000\u5e78\u597d\uff0c\u5df2\u7ecf\u6709\u4eba\u628a json \u7684\u65b9\u6cd5\u5c01\u88c5\u6210 php4.x \u7cfb\u5217\u751a\u81f3\u66f4\u4f4e\u7684\u7248\u672c\u90fd\u53ef\u4ee5\u6267\u884c\u7684\u7c7b\u4e86\u3002\u8fd9\u91cc\u8981\u5148\u8c22\u8c22\u5148\u9a71\u4e86\u3002\u8ba9\u6211\u4eec\u53ef\u4ee5\u8e29\u5728\u5de8\u4eba\u7684\u80a9\u8180\u4e0a\u8d70\u5411\u6210\u529f\u3002\u4f7f\u7528\u65b9\u6cd5\uff1aif( function_exists(json_encode) )\u3000\u3000{\u3000\u3000return json_encode($phparr);\u3000\u3000}\u3000\u3000else\u3000\u3000{\u3000\u3000require_once ROOT.include/json.class.php;\u3000\u3000$json = new Services_JSON;\u3000\u3000return $json->encode($phparr);\u3000\u3000}\u3000\u3000?>
package cn.xwy.action;
import org.apache.commons.lang.StringEscapeUtils;
import net.sf.json.JSONObject;
public class json {
public static void main(String[] args) {
System.out.println(StringEscapeUtils.unescapeJava("\u8bb0\u5f55\u6536\u85cf"));
System.out.println(StringEscapeUtils.escapeJava("记录收藏"));
}
}
导入tomcat下的lib包。
运行结果:
一,json_encode作用:
json_encode — 对变量进行 JSON 编码。
说明:string json_encode ($value ),返回 value 值的 JSON 形式。
参数:待编码的 value ,除了resource 类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据(译注:指字符/字符串类型的数据)
返回值:编码成功则返回一个以 JSON 形式表示的 string 。
二,客户端用java语言解码:
方法一:
public String unescapeUnicode(String str){
StringBuffer b=new StringBuffer();
Matcher m = Pattern.compile("\\\\u([0-9a-fA-F]{4})").matcher(str);
while(m.find())
b.append((char)Integer.parseInt(m.group(1),16));
return b.toString();
}
方法二:
直接使用unescapeUnicode()方法解码就可以了。
使用 json_simple.jar 包解析
下载地址:http://code.google.com/p/json-simple/downloads/list
JSON.simple是一个简单的Java类库,用于解析和生成JSON文本。不依赖于其它类库,性能高。
Object obj=JSONValue.parse(jsonStr);
return obj.toString();
public class Test1 {
public static void main(String[] args){
String str = "\u8bb0\u5f55\u6536\u85cf";
for(int j = 0;j<str.length();j++) {
System.out.print(str.charAt(j));
}
}
}
引用 org.apache.commons-lang.jar包
使用 org.apache.commons.lang.StringEscapeUtils.escapeJava("记录收藏")
绛旓細鍙互鐨勶紝浣犺繖鏍疯瘯涓涓 鍦╦sp椤甸潰涓細 鍦ㄨ椤电殑javascript涓 var strs=document.getElementById("findArray");杩欓噷鐨剆trs灏辨槸鐩爣鏁扮粍銆備笉鐭ラ亾浣犳槸鍚庡彴浼犵粰JSP鐒跺悗鍐嶄紶缁JS杩樻槸鐩存帴鍦↗SP涓骇鐢熷?
绛旓細import java.io.*;import java.util.*;class BinaryTree{ BinaryTree left=null;BinaryTree right=null;char data=0;} public class Calculator{ String porder="";public void postorder(BinaryTree bt){ //閫掑綊鍚庡簭閬嶅巻浜屽弶鏍 if(bt!=null){ postorder(bt.left);postorder(bt.right);porder+=...
绛旓細java璋冪敤js java閫氳繃webView.loadUrl("JavaScript:"+jsCode);鏉ュ疄鐜癹s浠g爜鐨勮皟鐢 2. java璋冪敤js鐨勫疄鐜 java璋冪敤js鐨勬柟娉曪紝鐩稿綋绠鍗:String jsCode = "(function(){ /*js code here*/ })()";webview.loadUrl("javascript:" + jsCode);娉ㄦ剰锛氳鎶妀s浠g爜鐢ㄨ嚜鎵ц鍑芥暟鍖呰9璧锋潵 鍒╃敤杩欑鏂规硶鍙互鎶...
绛旓細鍙互灏JAVA鍙橀噺鍦↗SP澶撮儴瀹氫箟鎴愬叏灞鍙橀噺銆傜劧鍚庡彲浠ュ垎鍒湪JS鍜孞SP閲岃皟鐢ㄣ傚洜涓哄彲浠ュ皢JS鍜孞SP鐞嗚В涓轰袱涓浉浜掔嫭绔嬬殑鍧椼傝繖2涓潡閲岄潰鐨勫彉閲忛兘鏄眬閮ㄥ彉閲忋傘鑰屽眬閮ㄥ彉閲忔槸涓嶅叡浜殑銆傞鍏堝緢鍩虹鐨:JS鍙互鐩存帴寮曠敤JAVA鍙橀噺锛屼絾JAVA涓嶈兘寮曠敤JS鍙橀噺銆傚洜涓洪〉闈㈡槸鍏堢紪璇慗AVA鍐嶇紪璇慗S锛屼唬鐮佸涓嬶細String tbname="bd_...
绛旓細棣栧厛锛屼綘瑕佹悶娓呮JS鏄粈涔堬紝瀹冩槸鍦℉TML椤甸潰涓婅繍鐢ㄧ殑锛屼綘鎯崇敤JAVA浠g爜鍘昏皟鐢紝閭f槸涓嶈鐨勯兘銆傛渶澶氾紝鍦ㄥ墠鍙伴〉闈紝鍜屽悗鍙扮▼搴杩涜浜や簰鐨勬椂鍊欙紝浣犲彲浠ョ敤鍒癑S璺宠浆浼犲弬鍒板悗鍙癑AVA绋嬪簭涓紝杩涜浜掑姩銆侸AVA鐩存帴璋冪敤JS鐨勬柟娉曪紝鎴戠‘瀹炴槸娌℃湁鍚繃
绛旓細鍙互鐢ㄥ弽灏勫疄鐜,浼犲叆鐨勫弬鏁版槸绫荤殑鍏ㄩ檺瀹氬悕绉 1 Class clz = Class.forName("java.lang.String"); 鏈洖绛旂敱鐢佃剳缃戠粶鍒嗙被杈句汉 钁h緣鎺ㄨ崘 涓炬姤| 绛旀绾犻敊 | 璇勮 0 0 manwu91 閲囩撼鐜:65% 鏉ヨ嚜鍥㈤槦:JAVA鏃剁┖ 鎿呴暱: 甯歌杞欢 JAVA鐩稿叧 鍏朵粬鍥炵瓟 浣犺鐨勬牴鎹竴涓瓧绗︿覆瑕佸緱鍒颁竴涓被,鍦Java涓鍙兘浣跨敤鍙嶅皠鏈哄埗浜...
绛旓細}鑰屽湪js涓緝涓哄父瑙佹柟娉曚负indexOf()锛岃繑鍥炲煎悓java涓鏍凤紝涓烘渶甯哥敤鐨勬柟娉曪紱闅忓悗锛孍S6鍙堟彁渚涗簡涓夌鏂版柟娉曘俰ncludes()锛岃繑鍥炲竷灏斿硷紝琛ㄧず鏄惁鎵惧埌浜嗗弬鏁瀛楃涓锛泂tartsWith()锛岃繑鍥炲竷灏斿硷紝琛ㄧず鍙傛暟瀛楃涓叉槸鍚﹀湪婧愬瓧绗︿覆鐨勫ご閮紱endsWith()锛岃繑鍥炲竷灏斿硷紝琛ㄧず鍙傛暟瀛楃涓叉槸鍚﹀湪婧愬瓧绗︿覆鐨勫熬閮ㄣ倂ar s = '...
绛旓細灏哃ist<String> 杞垚json,浼犲埌鐣岄潰銆js涓娇鐢╲ar arr = eval锛堚${list}'锛;灏唋ist杞垚js鏁扮粍銆備唬鐮佸涓:var keyList = eval('${keysList}');var values = $("#paramsValues").val();var noSet = [];for(var i=0;i<keyList.length;i++){ if(values.indexOf(keyList[i])==-1...
绛旓細java鍜js浜や簰鍒嗕负涓夌鎯呭喌锛屽垎鍒槸锛1 璋冪敤缃戦〉涓婄殑js浠g爜 Android 涓彲浠ラ氳繃webview鏉ュ疄鐜板拰js鐨勪氦浜掞紝鍦ㄧ▼搴忎腑璋冪敤js浠g爜锛屽彧闇瑕佸皢webview鎺т欢鐨勬敮鎸乯s鐨勫睘鎬ц缃负true锛岋紝鐒跺悗閫氳繃loadUrl灏卞彲浠ョ洿鎺杩涜璋冪敤锛屽涓嬫墍绀猴細mWebView.getSettings().setJavaScriptEnabled(true);mWebView.loadUrl("...
绛旓細1銆佸璞★細瀵硅薄鍦js涓〃绀轰负鈥渰}鈥濇嫭璧锋潵鐨勫唴瀹癸紝鏁版嵁缁撴瀯涓 {key锛歷alue锛宬ey锛歷alue,...}鐨勯敭鍊煎鐨勭粨鏋勶紝鍦ㄩ潰鍚戝璞$殑璇█涓紝key涓哄璞$殑灞炴э紝value涓哄搴旂殑灞炴у硷紝鎵浠ュ緢瀹规槗鐞嗚В锛屽彇鍊兼柟娉曚负 瀵硅薄.key 鑾峰彇灞炴у硷紝杩欎釜灞炴у肩殑绫诲瀷鍙互鏄 鏁板瓧銆瀛楃涓銆佹暟缁勩佸璞″嚑绉嶃傚湪Java涓灏辨槸涓绉...