代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
生成 JSON 字符串
作者:
/ 发布于
2011/1/14
/
595
<div><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.ArrayList; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Iterator; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.LinkedHashMap; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.List; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Map; </span><span style="color: #008000">/**</span><span style="color: #008000"> * JSON utility class * * </span><span style="color: #808080">@since</span><span style="color: #008000"> 2008-04-21 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> Json { </span><span style="color: #008000">//</span><span style="color: #008000"> test</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) { Json json1 </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Json(); json1.add(</span><span style="color: #000000">"</span><span style="color: #000000">totalCount</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">2</span><span style="color: #000000">); json1.add(</span><span style="color: #000000">"</span><span style="color: #000000">isTest</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #0000ff">true</span><span style="color: #000000">); Json json_a </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Json(); json_a.add(</span><span style="color: #000000">"</span><span style="color: #000000">menuid</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">); json_a.add(</span><span style="color: #000000">"</span><span style="color: #000000">menuname</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">testmenu</span><span style="color: #000000">"</span><span style="color: #000000">); json1.add(</span><span style="color: #000000">"</span><span style="color: #000000">topics</span><span style="color: #000000">"</span><span style="color: #000000">, json_a); Json json_b </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Json(); json_b.add(</span><span style="color: #000000">"</span><span style="color: #000000">menuid</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">2</span><span style="color: #000000">); json_b.add(</span><span style="color: #000000">"</span><span style="color: #000000">menuname</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">testmenu</span><span style="color: #000000">"</span><span style="color: #000000">); json1.add(</span><span style="color: #000000">"</span><span style="color: #000000">topics</span><span style="color: #000000">"</span><span style="color: #000000">, json_b); System.out.println(json1.toString()); } </span><span style="color: #0000ff">private</span><span style="color: #000000"> Map map </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> LinkedHashMap(); </span><span style="color: #008000">/**</span><span style="color: #008000"> * 添加一个 JSON 属性,值为一个字符串,重复添加时产生数组<p/> * * add("name", "value");<br/> * 添加一个字符串,产生的 JSON 如:{"name":"value"}<p/> * * add("name", "value1");<br/> * add("name", "value2");<br/> * 添加两个同属性的字符串,产生的 JSON 如:{"name":["value1", "value2"]}<p/> * * </span><span style="color: #808080">@param</span><span style="color: #008000"> key JSON 属性名 * </span><span style="color: #808080">@param</span><span style="color: #008000"> str 字符串格式的属性值 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> add(String key, String value) { addElement(key, value); } </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> add(String key, </span><span style="color: #0000ff">int</span><span style="color: #000000"> num) { addElement(key, </span><span style="color: #0000ff">new</span><span style="color: #000000"> Integer(num)); } </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> add(String key, </span><span style="color: #0000ff">boolean</span><span style="color: #000000"> b) { addElement(key, </span><span style="color: #0000ff">new</span><span style="color: #000000"> Boolean(b)); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * 添加一个 JSON 属性,值为一个 JSON,重复添加时产生 JSON 数组<p/> * * Json json1 = new Json();<br/> * json1.add("name1", "value1");<br/> * json1.add("name2", "value2");<br/> * Json json = new Json();<br/> * json.add("message", json1);<br/> * 添加一个 JSON,产生的 JSON 如:{"message":{"name1":"value1", "name2":"value2"}}<p/> * * Json json1 = new Json();<br/> * json1.add("name1", "value1");<br/> * json1.add("name2", "value2");<br/> * Json json2 = new Json();<br/> * json2.add("name1", "value3");<br/> * json2.add("name2", "value4");<br/> * Json json = new Json();<br/> * json.add("message", json1);<br/> * json.add("message", json2);<br/> * 添加两个同属性的 JSON,产生的 JSON 如:{"message":[{"name1":"value1", "name2":"value2"}, {"name1":"value3", "name2":"value4"}]}<p/> * * </span><span style="color: #808080">@param</span><span style="color: #008000"> key JSON 属性名 * </span><span style="color: #808080">@param</span><span style="color: #008000"> json JSON 格式的属性值 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> add(String key, Json json) { addElement(key, json); } </span><span style="color: #0000ff">public</span><span style="color: #000000"> String toString() { StringBuilder sb </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(); sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">int</span><span style="color: #000000"> k </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; </span><span style="color: #0000ff">for</span><span style="color: #000000"> (Iterator i </span><span style="color: #000000">=</span><span style="color: #000000"> map.keySet().iterator(); i.hasNext();) { String key </span><span style="color: #000000">=</span><span style="color: #000000"> (String)(i.next()); Object obj </span><span style="color: #000000">=</span><span style="color: #000000"> map.get(key); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (k </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) { sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">); } appendKey(sb, key); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> String) { appendString(sb, (String)obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> List) { appendList(sb, (List)obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> Json) { appendJson(sb, (Json)obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { appendOther(sb, obj); } k</span><span style="color: #000000">++</span><span style="color: #000000">; } sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">return</span><span style="color: #000000"> sb.toString(); } </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> addElement(String key, Object obj) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">map.containsKey(key)) { </span><span style="color: #0000ff">if</span><span style="color: #000000">(obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> Json) { List list </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ArrayList(); list.add(obj); map.put(key, list); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { map.put(key, obj); } </span><span style="color: #0000ff">return</span><span style="color: #000000">; } Object o </span><span style="color: #000000">=</span><span style="color: #000000"> map.remove(key); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (o </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> List) { ((List)o).add(obj); map.put(key, o); </span><span style="color: #0000ff">return</span><span style="color: #000000">; } </span><span style="color: #008000">//</span><span style="color: #008000"> o is a String</span><span style="color: #008000"> </span><span style="color: #000000"> List list </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ArrayList(); list.add(o); list.add(obj); map.put(key, list); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * Append JSON property name * * </span><span style="color: #808080">@param</span><span style="color: #008000"> sb * </span><span style="color: #808080">@param</span><span style="color: #008000"> key </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> appendKey(StringBuilder sb, String key) { sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">\"</span><span style="color: #000000">"</span><span style="color: #000000">).append(key).append(</span><span style="color: #000000">"</span><span style="color: #000000">\":</span><span style="color: #000000">"</span><span style="color: #000000">); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * Append JSON property value that is a String * * </span><span style="color: #808080">@param</span><span style="color: #008000"> sb * </span><span style="color: #808080">@param</span><span style="color: #008000"> str </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> appendString(StringBuilder sb, String str) { sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">\"</span><span style="color: #000000">"</span><span style="color: #000000">).append(str).append(</span><span style="color: #000000">"</span><span style="color: #000000">\"</span><span style="color: #000000">"</span><span style="color: #000000">); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * Append JSON property value that is a Integer * * </span><span style="color: #808080">@param</span><span style="color: #008000"> sb * </span><span style="color: #808080">@param</span><span style="color: #008000"> num </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> appendOther(StringBuilder sb, Object obj) { sb.append(obj); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * Append JSON property value that is a List * * </span><span style="color: #808080">@param</span><span style="color: #008000"> sb * </span><span style="color: #808080">@param</span><span style="color: #008000"> list </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> appendList(StringBuilder sb, List list) { sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, m </span><span style="color: #000000">=</span><span style="color: #000000"> list.size(); j </span><span style="color: #000000"><</span><span style="color: #000000"> m; j</span><span style="color: #000000">++</span><span style="color: #000000">) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (j </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) { sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">); } Object obj </span><span style="color: #000000">=</span><span style="color: #000000"> list.get(j); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> String) { appendString(sb, (String)obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> Json) { appendJson(sb, (Json)obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { appendOther(sb, obj); } } sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">]</span><span style="color: #000000">"</span><span style="color: #000000">); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * Append JSON property value that is a JSON * * </span><span style="color: #808080">@param</span><span style="color: #008000"> sb * </span><span style="color: #808080">@param</span><span style="color: #008000"> json </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> appendJson(StringBuilder sb, Json json) { sb.append(json.toString()); } }</span> </div>
试试其它关键字
JSON
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3