﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-JSON</title><link>http://www.blogjava.net/paulwong/category/55336.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Oct 2020 05:17:18 GMT</lastBuildDate><pubDate>Fri, 30 Oct 2020 05:17:18 GMT</pubDate><ttl>60</ttl><item><title>Pretty print JSON using org.json library in Java</title><link>http://www.blogjava.net/paulwong/archive/2020/10/28/435709.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 28 Oct 2020 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2020/10/28/435709.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435709.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2020/10/28/435709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435709.html</trackback:ping><description><![CDATA[<h2>Syntax</h2><pre notranslate=""  prettyprinted"="" style="font-family: monospace, monospace; font-size: 0.95em; background-color: #f7f7f7; border: 1px solid #dedede; padding: 5px; overflow: auto; margin-top: 15px; margin-bottom: 10px; border-radius: 0px; color: rgba(0, 0, 0, 0.87); background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important;"><span style="color: #000088;">public</span><span style="color: #000000;"> java</span><span style="color: #666600;">.</span><span style="color: #000000;">lang</span><span style="color: #666600;">.</span><span style="color: #660066;">String</span><span style="color: #000000;"> toString</span><span style="color: #666600;">(</span><span style="color: #000088;">int</span><span style="color: #000000;"> indentFactor</span><span style="color: #666600;">)</span> <span style="color: #000088;">throws</span> <span style="color: #660066;">JSONException</span></pre><h2>Example</h2><pre notranslate=""  prettyprinted"="" style="font-family: monospace, monospace; font-size: 0.95em; background-color: #f7f7f7; border: 1px solid #dedede; padding: 5px; overflow: auto; margin-top: 15px; margin-bottom: 10px; border-radius: 0px; color: rgba(0, 0, 0, 0.87); background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.json.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;JSONPrettyPrintTest&nbsp;{<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String&nbsp;args[])&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;JSONException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;json&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">{</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Name&nbsp;:&nbsp;Jai,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Age&nbsp;:&nbsp;25,&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Salary:&nbsp;25000.00&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;jsonObj&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;JSONObject(json);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Pretty&nbsp;Print&nbsp;of&nbsp;JSON:</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(jsonObj.toString(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">));&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;pretty&nbsp;print&nbsp;json</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}<br />}</span></div></pre><h2>Output</h2><pre notranslate"="" style="font-family: monospace, monospace; font-size: 0.95em; background-color: #f7f7f7; border: 1px solid #dedede; padding: 5px; overflow: auto; margin-top: 0px; margin-bottom: 0px; border-radius: 0px; color: rgba(0, 0, 0, 0.87); background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">Pretty&nbsp;Print&nbsp;of&nbsp;JSON:<br />{<br />&nbsp;&nbsp;&nbsp;"Salary":&nbsp;25000,<br />&nbsp;&nbsp;&nbsp;"Age":&nbsp;25,<br />&nbsp;&nbsp;&nbsp;"Name":&nbsp;"Jai"<br />}</span></div></pre><img src ="http://www.blogjava.net/paulwong/aggbug/435709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2020-10-28 17:17 <a href="http://www.blogjava.net/paulwong/archive/2020/10/28/435709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>5 ways to customize Spring MVC JSON/XML output</title><link>http://www.blogjava.net/paulwong/archive/2020/03/08/435236.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 08 Mar 2020 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2020/03/08/435236.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435236.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2020/03/08/435236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435236.html</trackback:ping><description><![CDATA[<a href="https://mostafa-asg.github.io/post/customize-json-xml-spring-mvc-output/" target="_blank">https://mostafa-asg.github.io/post/customize-json-xml-spring-mvc-output/</a><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/435236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2020-03-08 15:55 <a href="http://www.blogjava.net/paulwong/archive/2020/03/08/435236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以流的方式解释巨大JSON文件</title><link>http://www.blogjava.net/paulwong/archive/2019/05/03/433743.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 03 May 2019 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2019/05/03/433743.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/433743.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2019/05/03/433743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/433743.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/433743.html</trackback:ping><description><![CDATA[<a href="https://www.ngdata.com/parsing-a-large-json-file-efficiently-and-easily/" target="_blank">https://www.ngdata.com/parsing-a-large-json-file-efficiently-and-easily/<br /><br /><br /></a><a href="https://sites.google.com/site/gson/streaming">https://sites.google.com/site/gson/streaming<br /><br /></a><a href="http://www.acuriousanimal.com/2015/10/23/reading-json-file-in-stream-mode-with-gson.html">http://www.acuriousanimal.com/2015/10/23/reading-json-file-in-stream-mode-with-gson.html<br /><br /></a><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String&nbsp;[]&nbsp;args)&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;IOException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filePath&nbsp;=&nbsp;"C:big-data.json";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;in&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;FileInputStream(<span style="color: #0000FF; ">new</span>&nbsp;File(filePath));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonReader&nbsp;reader&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;JsonReader(<span style="color: #0000FF; ">new</span>&nbsp;InputStreamReader(in,&nbsp;"UTF-8"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gson&nbsp;gson&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;GsonBuilder().create();<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.beginObject();<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.nextName();</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.beginObject();<span style="color: #008000; ">//</span><span style="color: #008000; ">跳过"{"</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(reader.hasNext())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Read&nbsp;data&nbsp;into&nbsp;object&nbsp;model</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonToken&nbsp;jsonToken&nbsp;=&nbsp;reader.peek();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(jsonToken.equals(JsonToken.NAME))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;reader.nextName();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(name.equalsIgnoreCase("SUMMARY"))&nbsp;{<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.beginObject();</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Summary&nbsp;summary&nbsp;=&nbsp;gson.fromJson(reader,&nbsp;Summary.<span style="color: #0000FF; ">class</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(summary.toString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.endObject();</span><span style="color: #008000; ">//</span><span style="color: #008000; ">跳过"}"</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">else&nbsp;if(jsonToken.equals(JsonToken.BEGIN_OBJECT))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.beginObject();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if(jsonToken.equals(JsonToken.STRING))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(reader.nextString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if(jsonToken.equals(JsonToken.NUMBER))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(reader.nextInt()&nbsp;+&nbsp;"");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if(jsonToken.equals(JsonToken.END_OBJECT))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.endObject();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Summary&nbsp;summary&nbsp;=&nbsp;gson.fromJson(reader,&nbsp;Summary.class);<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;}</div><img src ="http://www.blogjava.net/paulwong/aggbug/433743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2019-05-03 15:22 <a href="http://www.blogjava.net/paulwong/archive/2019/05/03/433743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>