解决方案:在后台处理 JSONArray.fromObject(list).toString()

转自明明如月小角落:

效果DEMO:

java json字符串去掉双引号 去除json外层双引号_JSON

 

 

java json字符串去掉双引号 去除json外层双引号_JSON_02

 

java json字符串去掉双引号 去除json外层双引号_java json字符串去掉双引号_03

 

JsonQuotesUtil.js

 

[javascript] view plain copy

 

1. /** 
2.  * 解决json传输数据时存在 同时存在单引号和双引号的问题 
3.  * 
4.  * 思路: 
5.  * 
6.  * 1 首选将 双引号转义 
7.  * 
8.  * 2 将 单双引号用不容易在字符串中出现的字符分别替换 
9.  *   在后台 分别用过单双引号替换掉即可 
10.  * 
11.  * 注:可以传入字符串 也可以传入字符串数组 
12.  * author: 明明如月 QQ 605283073 
13.  * time:2015年5月19日15:33:44 
14.  */  
15.   
16. function JsonQuotesUtil()  
17.  {  
18.   
19. var defualtSingleQuotePlaceholder="s%0";//默认单引号占位符  
20. var defualtDoubleQuotePlaceholder="d%1";//默认双引号占位符  
21.   
22. var singleQuotePlaceholder=defualtSingleQuotePlaceholder;//单引号占位符  
23. var doubleQuotePlaceholder=defualtDoubleQuotePlaceholder;//双引号占位符  
24.        
25. //设置单引号占位符(建议起不容易出现的字符)  
26. this.setSingleQuotePlaceholder = function(single)  
27.      {  
28.          singleQuotePlaceholder=single;  
29. return this;  
30.      }  
31.        
32. //设置双引号占位符(建议起不容易出现的字符)  
33. this.setDoubleQuotePlaceholder = function(double)  
34.      {  
35. double;  
36.   
37. return this;  
38.      }  
39.        
40. //恢复默认单引号和双引号占位符  
41. this.restoreDefaults = function()  
42.      {  
43.          singleQuotePlaceholder=defualtSingleQuotePlaceholder;  
44.          doubleQuotePlaceholder=defualtDoubleQuotePlaceholder;  
45. return this;  
46.      }  
47.        
48. //用单引号占位符替换单引号 并返回替换后的字符串  
49. this.replaceSingleQuote=function (str)  
50.      {  
51.   
52. if(str instanceof  Array)//如果是数组分别替换  
53.          {  
54. for(var i=0;i<str.length;i++)  
55.              {  
56.                 str[i]= str[i].replace(/'/g, singleQuotePlaceholder);  
57.   
58.              }  
59. else  
60.          {  
61.              str= str[i].replace(/'/g, singleQuotePlaceholder);  
62.          }  
63. return str;  
64.      }  
65.        
66. //用双引号替换符替换双引号 并返回替换后的字符串  
67. this.replaceDoubleQuote = function (str)  
68.      {  
69. // return str.replace(/"/g, doubleQuotePlaceholder);  
70.   
71. if(str instanceof  Array)//如果是数组分别替换  
72.          {  
73. for(var i=0;i<str.length;i++)  
74.              {  
75.                  str[i]= str[i].replace(/'/g, doubleQuotePlaceholder);  
76.   
77.              }  
78. else  
79.          {  
80.              str= str[i].replace(/'/g, doubleQuotePlaceholder);  
81.          }  
82. return str;  
83.   
84.      }  
85.   
86.   
87.   
88.   
89. this.replaceSingleAndDoubleQuote = function(str)  
90.      {  
91. // return str.replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder);  
92. if(str instanceof  Array)//如果是数组分别替换  
93.          {  
94. "1");  
95. for(var i=0;i<str.length;i++)  
96.              {  
97.                  alert(str[i]);  
98.                  str[i]= str[i].replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder);  
99.   
100.              }  
101. else  
102.          {  
103.              str= str.replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder);  
104.          }  
105. return str;  
106.      }  
107.   
108.   
109. //双引号转义  
110. this.escapeDoubleQuote = function(str)  
111.      {  
112.   
113.   
114. if(str instanceof  Array)//如果是数组分别替换  
115.          {  
116. "1");  
117. for(var i=0;i<str.length;i++)  
118.              {  
119.                  alert(str[i]);  
120. "/g,"\\\"");  
121.   
122.              }  
123. else  
124.          {  
125. "/g,"\\\"");;  
126.          }  
127. return str;  
128.      }  
129.  }  
130.

 

 

 demo.js 使用范例:

 

[javascript] view plain copy

 

1. /** 
2.  * Created by Administrator on 2015/5/19 0019. 
3.  */  
4. $(function(){  
5.   
6. //替换单双引号按钮的点击事件  
7. "#show").click(function(){  
8.   
9. var sourceStr =$("#sourceStr").val();//获取需要替换字符  
10.   
11. /* 使用方法1 创建对象并自定义 单双引号占位符 
12.            var jsonQuotesUtil = new JsonQuotesUtil().setSingleQuotePlaceholder 
13.  
14. ("%^^").setDoubleQuotePlaceholder("&&");//创建对象(同时自定义单双引占位符)*/  
15.   
16. /* 使用方法2 自定义对象并自定义 单双引号占位符 
17.            var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符 
18.           jsonQuotesUtil.setSingleQuotePlaceholder("%^^"); 
19.           jsonQuotesUtil.setDoubleQuotePlaceholder("##");*/  
20.   
21.   
22. // jsonQuotesUtil.restoreDefaults();//恢复默认的单双引号占位符  
23.   
24.   
25. /* 使用方法3 自定义对象并自定义 单双引号占位符 
26.          var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符 
27.           */  
28.   
29.   
30.   
31.   
32. var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符  
33.   
34. var single =$("#single").val();//获取 单引号占位符  
35. var double = $("#double").val();//获取输入的双引号占位符  
36.   
37. if($.trim(single)!="")  
38.         {  
39. //设置单引号占位符  
40.         }  
41.   
42. if($.trim(double)!="")  
43.         {  
44. double);//设置双引号占位符  
45.         }  
46.   
47.   
48. var reuslt = jsonQuotesUtil.replaceSingleAndDoubleQuote(sourceStr);//同时替换单双引  
49.   
50. 号  
51.   
52.   
53. // var reuslt = jsonQuotesUtil.escapeDoubleQuote(sourceStr)  
54. "#replaceResult").html(reuslt);//显示替换后的字符串  
55.   
56.   
57.   
58.     });  
59.   
60.   
61.   
62. "#escape").click(function(){  
63.   
64. var sourceStr =$("#sourceStr").val();//获取需要替换字符  
65.   
66. var reuslt =  new JsonQuotesUtil().escapeDoubleQuote(sourceStr);  
67. "#replaceResult").html(reuslt);//显示替换后的字符串  
68.   
69.     });  
70.   
71. function arrayTest()//支持数组每个字符串的替换(没有调用)  
72.     {  
73. var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符  
74.   
75. var sourceStr = new Array();  
76. "dfdfd'dfdf";  
77. "dfdfd\"sfdsfsd";  
78. "sourceStr"+sourceStr);  
79.   
80. var reuslt = jsonQuotesUtil.replaceSingleAndDoubleQuote(sourceStr);//同时替换单双引  
81.   
82. 号  
83. "after:"+reuslt);  
84.     }  
85. });

 

JsonQuotesUtil Demo.html

 

[html] view plain copy

 

1. <!DOCTYPE html>  
2. <html>  
3. <head lang="en">  
4. <meta charset="UTF-8">  
5. <title>JsonQuotesUtil Demo</title>  
6. <script type="text/javascript" src="libs/js/jquery.js"></script>  
7. <script type="text/javascript" src="libs/js/JsonQuotesUtil.js"></script>  
8. <script type="text/javascript" src="libs/js/demo.js"></script>  
9. </head>  
10.   
11. <br/>  
12. <textarea rows="10" cols="65" id="sourceStr">This is a simple solution for SingleQuote( ') and DoubleQuote(") in json </textarea>  
13.   
14. <br/><br/>  
15. <input id="single" type="text" placeholder="s%0"/>   双引号占位符:<input id="double" type="text" placeholder="d%1"/>  
16.   
17. <br/> <br/>  
18. <input type="button" id="show" value="替换单双引号"> <input type="button" id="escape" value="转义双引号">  
19. <br/>  
20. <span id="replaceResult"></span>  
21.   
22.   
23.   
24. </form>  
25.   
26. </body>  
27. </html>
  1.  

 

 

后台解析Util:

 

 

[java] view plain copy

 

1. package reg;  
2. /** 
3.  * 解决json传输数据时存在 同时存在单引号和双引号的问题 
4.  * 
5.  * 思路: 
6.  * 将 单双引号用不容易在字符串中出现的字符分别替换 
7.  * 在后台 分别用过单双引号替换掉即可 
8.  * 注:可以传入字符串 也可以传入字符串数组 
9.  * 
10.  * author: 明明如月 QQ 605283073 
11.  * time:2015年5月19日15:33:44 
12.  */  
13. public class JsonQuotesUtil   
14. {  
15. private  String defualtSingleQuotePlaceholder="s%0";//默认单引号占位符  
16. private   String defualtDoubleQuotePlaceholder="d%1";//默认双引号占位符  
17.       
18. public JsonQuotesUtil()   
19.     {  
20. super();  
21.           
22.     }  
23.       
24. public JsonQuotesUtil(String defualtSingleQuotePlaceholder,  
25.             String defualtDoubleQuotePlaceholder)   
26.     {  
27. super();  
28. this.defualtSingleQuotePlaceholder = defualtSingleQuotePlaceholder;  
29. this.defualtDoubleQuotePlaceholder = defualtDoubleQuotePlaceholder;  
30.     }  
31.   
32. //恢复单引号(字符串)  
33. public    String restoreSingleQuotes(String str)  
34.     {  
35. return str.replaceAll(defualtSingleQuotePlaceholder, "\'");  
36.     }  
37.       
38. public  String[]  restoreSingleQuotes(String[] strs)//恢复单引号(数组)  
39.     {  
40. for(int i =0;i<strs.length;i++)  
41.         {  
42. "\'");  
43.         }  
44. return strs;  
45.     }  
46.       
47. //恢复双引号  
48. public   String restoreDoubleQuote(String str)//恢复单引号(数组)  
49.     {  
50. return str.replaceAll(defualtDoubleQuotePlaceholder, "\"");  
51.     }  
52. public   String[] restoreDoubleQuote(String[] strs)  
53.     {  
54. for(int i =0;i<strs.length;i++)  
55.         {  
56. "\'");  
57.         }  
58. return strs;  
59.           
60.     }  
61.       
62.       
63. //恢复单双引号  
64. public   String restoreSingleAndDoubleQuote(String str)  
65.     {  
66. return str.replaceAll(defualtSingleQuotePlaceholder, "\'").replaceAll(defualtDoubleQuotePlaceholder, "\"");  
67.     }  
68. public   String[] restoreSingleAndDoubleQuote(String[] strs)//恢复单双引号(数组)  
69.     {  
70. for(int i =0;i<strs.length;i++)  
71.         {  
72. "\'").replaceAll(defualtDoubleQuotePlaceholder, "\"");  
73.         }  
74. return strs;  
75.       
76.     }  
77.   
78. public String getDefualtSingleQuotePlaceholder()   
79.     {  
80. return defualtSingleQuotePlaceholder;  
81.     }  
82.   
83. public void setDefualtSingleQuotePlaceholder(String defualtSingleQuotePlaceholder)  
84.     {  
85. this.defualtSingleQuotePlaceholder = defualtSingleQuotePlaceholder;  
86.     }  
87.   
88. public String getDefualtDoubleQuotePlaceholder()  
89.     {  
90. return defualtDoubleQuotePlaceholder;  
91.     }  
92.   
93. public void setDefualtDoubleQuotePlaceholder(String defualtDoubleQuotePlaceholder)  
94.     {  
95. this.defualtDoubleQuotePlaceholder = defualtDoubleQuotePlaceholder;  
96.     }  
97.       
98.       
99.   
100. }

Util使用方法:

 

 

 

[java] view plain copy

 

1. package reg;  
2.   
3. public class JsonQuotesUtilDemo   
4. {  
5.   
6.       
7.       
8. public static void main(String args[])  
9.     {  
10. //获取前台传入的参数  
11. "This is a simple solution for SingleQuote(s%0) and DoubleQuote(d%1) in json This is a simple solution for SingleQuote(s%0) and DoubleQuote(d%1) in json";  
12.           
13. new JsonQuotesUtil("s%0","d%1");  
14.         System.out.println(jsonQuotesUtil.restoreSingleAndDoubleQuote(str));  
15.     }  
16.       
17.   
18. }