JSONObject、JSONArray 太过爱你忘了你带给我的痛 2022-06-17 02:11 180阅读 0赞 原文章地址:http://blog.csdn.net/lishuangzhe7047/article/details/28880009 之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去理,取个数据还那么麻烦。其实,就跟if else语句一样,如果if中套if,if中再套if,写的规范了还行,要是代码格式不规范,那我们肯定也看着麻烦。所以啊,对于json嵌套,只要记住符号“:”前是键,符号后是值大括号成对找,一层层剥开,就清楚了。 举个例子说明,如下: ![SouthEast][] 从外到里看,例子中就是一个数组,数组里面是两个json格式的字符串。这样分析思路就清晰多了。 工作中需要取出name4的值,你们会怎么取呢?。最初我都想过字符串截取,那时还不了解JSONArray,现在知道了,取出来也就相当容易了。 取出name4值过程步骤:1,将以上字符串转换为JSONArray对象;2,取出对象的第一项,JSONObject对象;3,取出name1的值JSONObject对象;4,取出name2的值JSONObject对象;5,取出name4的值value2。 示例中json数组格式的字符串可以通过方法直接转换为JSONArray的格式:JSONArray.fromObject(String) **\[java\]** [view plain][] [copy][view plain] [print][view plain] [?][view plain] [![在CODE上查看代码片][CODE]][CODE_CODE] [![派生到我的代码片][ico_fork.svg]][ico_fork.svg 1] 1. </pre><pre name="code" **class**="java">JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//将结果转换成JSONArray对象的形式 2. JSONObject getJsonObj = getJsonArray.getJSONObject(0);//获取json数组中的第一项 3. String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4"); 好了我们说说这两个对象。 1,JSONObject json对象,就是一个键对应一个值,使用的是大括号\{ \},如:\{key:value\} 2,JSONArray json数组,使用中括号\[ \],只不过数组里面的项也是json键值对格式的 Json对象中添加的是键值对,JSONArray中添加的是Json对象 **\[java\]** [view plain][] [copy][view plain] [print][view plain] [?][view plain] [![在CODE上查看代码片][CODE]][CODE_CODE] [![派生到我的代码片][ico_fork.svg]][ico_fork.svg 1] 1. JSONObject Json = **new** JSONObject(); 2. JSONArray JsonArray = **new** JSONArray(); 3. 4. Json.put("key", "value");//JSONObject对象中添加键值对 5. JsonArray.add(Json);//将JSONObject对象添加到Json数组中 3,JSONObject与Map Map map和json都是键值对,不同的是map中键值对中间用等号分开,json中键值对中间用冒号分开。其实json就是一种特殊形式的map。 **\[java\]** [view plain][] [copy][view plain] [print][view plain] [?][view plain] [![在CODE上查看代码片][CODE]][CODE_CODE] [![派生到我的代码片][ico_fork.svg]][ico_fork.svg 1] 1. Map<String,String> strmap=**new** JSONObject(); 这里的需求是:request对象获取的map,想要返回json格式也不用白费力了。。。。哈哈。。 [SouthEast]: /images/20220617/22df5ab16b8b4250b76ef19afe60582a.png [view plain]: http://blog.csdn.net/lishuangzhe7047/article/details/28880009# [CODE]: https://code.csdn.net/assets/CODE_ico.png [CODE_CODE]: https://code.csdn.net/snippets/380059 [ico_fork.svg]: https://code.csdn.net/assets/ico_fork.svg [ico_fork.svg 1]: https://code.csdn.net/snippets/380059/fork
还没有评论,来说两句吧...