JSON数据转换成Java对象的方法
2023-06-13 09:15:19 时间
第一种方法,使用JSON-lib。
第二种方法,使用JACKSON。
前两种方法,对相对简单的Pojo对象来说,还是比较容易的。但是相对于嵌套多层的数据来说,复杂度就直接上去了。
第三种方法,使用GOOGLE的Gson来解决了。写过安卓的都知道,这东西,是Google出来的,最大的好处就是,基本不依赖其他的包。用起来自然很爽,取值方式非常灵活。对复杂的JSON取值,基本统统搞定。
在Gson中分为两种概念。一个就是JsonObject和JsonArray。具体的看代码
复制代码代码如下:
第二种方法,使用JACKSON。
前两种方法,对相对简单的Pojo对象来说,还是比较容易的。但是相对于嵌套多层的数据来说,复杂度就直接上去了。
第三种方法,使用GOOGLE的Gson来解决了。写过安卓的都知道,这东西,是Google出来的,最大的好处就是,基本不依赖其他的包。用起来自然很爽,取值方式非常灵活。对复杂的JSON取值,基本统统搞定。
在Gson中分为两种概念。一个就是JsonObject和JsonArray。具体的看代码
packagecom.mycompany.gsondata;
importcom.google.gson.JsonArray;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;
/**
*Helloworld!
*
*/
publicclassApp{
publicstaticvoidmain(String[]args){
StringjsonData="{\"questionnaireID\":\"QNTest\",\"answerResults\":[{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest03\",\"anserContent\":\"6b3a9cce-9087-11e3-8cf8-000c2945c442,a086331d-9087-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest05\",\"anserContent\":\"test测试文字填空\"},{\"questionID\":\"QSTest06\",\"anserContent\":\"3\"},{\"questionID\":\"QSTest07\",\"anserContent\":\"2.2\"}]}";
JsonObjectroot=newJsonParser().parse(jsonData).getAsJsonObject();
System.out.println(root.get("questionnaireID").toString());//直接取的根节点值
JsonArrayAnswerList=root.getAsJsonArray("answerResults");//取数组
for(inti=0;i<AnswerList.size();i++){
System.out.println(AnswerList.get(i).getAsJsonObject().get("questionID").toString());
System.out.println(AnswerList.get(i).getAsJsonObject().get("anserContent").toString());
}
}
}
相关文章
- java卸载 安装错误_Java卸载后无法重新安装 提示已安装过[通俗易懂]
- java calendar 设置小时_Java Calendar.set 方法设置时间的问题
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- java数组的声明_Java数组定义常用方法[通俗易懂]
- JAVA-FileInputStream之read方法「建议收藏」
- 中级java笔试题_Java中级面试题合集[通俗易懂]
- 【说站】java调用shell脚本的方法
- 【说站】Java捕获异常的两种方法
- actioncontext的作用_object.java类中的方法
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例「建议收藏」
- 字符串转json对象 java_js中对象转字符串的方法
- JAVA对象转map_java处理字符串类型的map
- Java基础(五)| 方法的定义、调用及重载
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- JAVA遍历数组的三种方法_java遍历object数组
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- java在线播放_Java实现视频在线播放flv视频
- java json对象和json字符串互转的方法_将json字符串转换成对象
- JAVA生成uuid_java接口default方法
- java后端开发职责_工作职责和岗位职责有什么区别
- 【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )
- 四种不同的方法创建java对象详解编程语言
- java操作文件FileUtil文件相关的工具类常用方法详解编程语言
- Java Map.equals()方法:判断Map集合是否与指定的对象相同
- Java Connection.close()方法:关闭Connection对象
- JSP Request.getUserPrincipal()方法:返回java.security.Principal对象
- 数据处理处理Redis Java中过期数据的最佳方法(redisjava过期)
- 时间处理Redis中Java过期时间的方法(redisjava过期)
- 数据库Java查询Oracle数据库:一种快捷、可靠的解决方案(java查询oracle)
- 实战探索:Java中使用Redis缓存(java的redis案例)
- 存储过程使用Java语言执行Oracle存储过程(java执行oracle)
- Oracle中实现Java程序设计的极限可能性(oracle中的java)
- Java实现Linux下双守护进程
- Java中Map的遍历方法及性能测试