很久没有进行文章的更新了,之前忙着做项目一直没有时间更新,在做项目中发现使用到JSON的地方非常多,对于新手期来说不知道怎么使用JSON来进行解析,今天我记录一下使用Alibaba的fastjson来解析数组的三中情况:

package com.example.demo.json;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.example.demo.common.Person;public class JsonLib {//json字符串-简单对象型private static final String  JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}";//json字符串-数组类型private static final String  JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";//复杂格式json字符串private static final String  COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";@SuppressWarnings("unchecked")public static void main(String[] args) {//demoJson();//testJSONStrToJSONObject();//json字符串转化对象//testJSONStrToJSONArray();//json数组转化json对象testComplexJSONStrToJSONObject();//json对象嵌套json对象}/*** 复杂json格式字符串与JSONObject之间的转换*/public static void testComplexJSONStrToJSONObject(){System.out.println(COMPLEX_JSON_STR);JSONObject jsonObject = JSON.parseObject(COMPLEX_JSON_STR);//JSONObject jsonObject1 = JSONObject.parseObject(COMPLEX_JSON_STR);//因为JSONObject继承了JSON,所以这样也是可以的System.out.println(jsonObject);String teacherName = jsonObject.getString("teacherName");Integer teacherAge = jsonObject.getInteger("teacherAge");JSONObject course = jsonObject.getJSONObject("course");JSONArray students = jsonObject.getJSONArray("students");System.out.println(teacherName+"------"+teacherAge+"===json对象===="+course+"----json数组----"+students);JSONArray jsonArray = JSON.parseArray(students.toString());System.out.println(jsonArray);}/*** json字符串-数组类型与JSONArray之间的转换*/public static void testJSONStrToJSONArray(){JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);//JSONArray jsonArray1 = JSONArray.parseArray(JSON_ARRAY_STR);//因为JSONArray继承了JSON,所以这样也是可以的//遍历方式1int size = jsonArray.size();for (int i = 0; i < size; i++){JSONObject jsonObject = jsonArray.getJSONObject(i);System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));}//遍历方式2for (Object obj : jsonArray) {JSONObject jsonObject = (JSONObject) obj;System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));}}/*** json字符串-简单对象型与JSONObject之间的转换*/public static void testJSONStrToJSONObject(){JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);//JSONObject jsonObject1 = JSONObject.parseObject(JSON_OBJ_STR); //因为JSONObject继承了JSON,所以这样也是可以的System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));}public static void demoJson() {/*** 将 Json 形式的字符串转换为 Map*/String str = "{\"name\":\"Tom\",\"age\":90}";JSONObject jsonObject = JSONObject.parseObject(str);Map<String, String> params = JSONObject.parseObject(jsonObject.toString(), new TypeReference<Map<String, String>>(){});System.out.println(params);/*** 将 Json 形式的字符串转换为 JavaBean*/str = "{\"id\":\"A001\",\"name\":\"Jack\"}";jsonObject = JSONObject.parseObject(str);System.out.println(jsonObject);Person person = JSON.parseObject(str, new TypeReference<Person>() {});System.out.println(person.toString());}}

java 学习网站:https://how2j.cn?p=77721,how2j,从基础到项目,一应俱全。可以先注册再学习,这样就可以记录学习进度咯!!!

Java解析json数组三种情况相关推荐

  1. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  2. java解析json数组

    java解析json数组 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; p ...

  3. Java解析Xml的三种方式总结

    转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式  根据XML的层级结构在内 ...

  4. java解析json的一种方法

    package com.hanchao.web; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /************* ...

  5. java二维数组三种初始化方法(实例)

    初始化方法: 1.使用大括号直接赋值,适合已经确定知道数组元素的情况 2.给定二维数组的大小 3.数组第二维的长度可变化,未改变 代码举例如下: public class NewArray {publ ...

  6. java解析json数组对象_JAVA中快速解析JSON对象里包含的JSON数组

    例如现在有这样一个Json String Value =  {"data":[{"school_name":"西北农林科技大学"," ...

  7. JSON的三种解析方式以及JSONObject、JSONArray区别

    JSON的常用两种解析方式 一.什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串 ...

  8. java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机;

    文章目录 前言 一.map 遍历方法 二.java正则学习 三.后端传到前端图片三种情况 1. 图片流数据(InputStream) 转 base64,前端展示保存 a. 后端:输入流转base,直接 ...

  9. js解析json数组+java对象转json字符串

    function checkoutUserlist(){ // js 解析json数组var statuslist = [{"isAvailabe":"1",& ...

  10. Java输入n个无序的整数,请编写程序,找出其中最大数所在的位置.请以以下三种情况运行你的程序.以便验证你的程序是否正确.(不得少于5个数)① 最大数在最前 ② 最大数在最后 ③ 最大

    代码如下: import java.util.ArrayList; import java.util.Scanner; /*输入n个无序的整数,请编写程序,找出其中最大数所在的位置.请以以下三种情况运 ...

最新文章

  1. C++ 类构造函数初始化列表介绍
  2. 程序员客栈携手野狗 体验国内领先的实时后端云协作
  3. 新版手机浏览器_新版《野性的呼唤》IGN仅3分 烂番茄72% M站54分
  4. weblogic 扫描不到jar包的类问题解决方案
  5. html 用svg缩放拉伸,html – 拉伸SVG以适应其父级的100%高度和宽度
  6. python threading-单线程 多线程 主线程 子线程 setDeamon join
  7. Markdown首行缩进解决方法实例
  8. Python版组合数计算方法优化思路和源码
  9. 快速搭建LAMP环境
  10. Java经典实例:实现一个简单堆栈
  11. 基于C语言的小游戏合集
  12. 物联网可靠连接——PLC-IOT电力线载波通讯
  13. java调节音量_调节音量的流程
  14. Windows下使用SSH命令登录Linux服务器
  15. 计算机主机开机 风扇没有转动,电脑开机黑屏,电源风扇和CPU风扇都正常转动,但是显示器无任何显示,正常的一声滴,萤幕什么都不显示...
  16. 汉字读音表GB2312版 (共7809个汉字)
  17. 绑定点击事件调用百度微信分享
  18. 服务器系统没法设置分辨率,windows系统分辨率改不了的原因分析及多种解决方法...
  19. 线圆示例(Line Circle)
  20. Homekit智能家居DIY一智能插座

热门文章

  1. html悬浮音乐符号,简谱中常用的音乐记号
  2. Revit二次开发——轴网
  3. web案例-3D旋转魔方和太极
  4. 保存Windows聚焦锁屏壁纸
  5. c语言usb串口通信程序,C语言在RS232串行接口通信中的实现
  6. java 流水_Java之流水号生成器实现
  7. mac上php的集成环境
  8. IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果...
  9. 有没有一个好用的番茄钟时间管理工具?
  10. matlab 1stopt,1stOpt或者MATLAB自定义公式曲线拟合 - 计算模拟 - 小木虫 - 学术 科研 互动社区...