首页 > 编程语言 >json和Java对象相互转换的四种方法

json和Java对象相互转换的四种方法

时间:2022-12-28 20:13:32浏览次数:41  
标签:Java String JSON jsonObject2 json num 解析 四种

第一种方法:原生解析
首先要分析json的格式,这里首先是一个json对象(即JsonObject),里面还嵌套有一个json数组(即JsonArray),jsonarray里面又是一个json对象

分析清楚那就可以进行解析了,当然最好的话,还是要建立一个json所对应的实体类bean,。
这里的result就是网络请求返回来的json字符串。

JSONObject jsonObject = new JSONObject(result); 
JSONArray jsonArray = jsonObject.getJSONArray(“data”); 
for (int j = 0; j < jsonArray.length(); j++) { 
JSONObject jsonObject2 = jsonArray.getJSONObject(j); 
String id = jsonObject2.getString(“id”); 
String title = jsonObject2.getString(“title”); 
String pic = jsonObject2.getString(“pic”); 
String collect_num = jsonObject2.getString(“collect_num”); 
String food_str = jsonObject2.getString(“food_str”); 
String num = jsonObject2.getString(“num”); 
Log.e(“json——->”, id+”,”+title+”,”+pic+”,”+collect_num+”,”+food_str+”,”+num);

第二种解析方式:Gson解析
Gson解析需要下载gson.jar包。
这里解析就需要给json生成实体类,初学的话建议手写,熟悉的话可以使用Android Studio里面插件GsonFormat来自动生成。

json字符串转对象:
Student stu = new Gson().fromJson(json, Student.class);

对象转json字符串:
String json = new Gson().toJson(stu)

第三种解析方式:FastJson和Gson类似的。
引入jar包

将json字符串转换为对象:(分两种情况)
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);

将对象转换为JSON字符串:
String json=JSON.toJSONString(要转换的对象)

第四种解析方式:JackJson解析,同样和上面类似
引入jar包

json字符串转对象

Student stu ;
stu = new ObjectMapper().readValue(json, Student .class);

标签:Java,String,JSON,jsonObject2,json,num,解析,四种
From: https://www.cnblogs.com/codeLearn/p/17011173.html

相关文章

  • LeetCode_Heap_剑指 Offer 40. 最小的k个数 【堆,泛型实现,自定义比较器】【C++/java】
    目录​​一,题目描述​​​​英文描述​​​​中文描述​​​​示例与说明​​​​二,解题思路​​​​1,手动实现堆——C++泛型实现​​​​2,手动实现堆——java泛型实现​​......
  • Web前端期末大作业--马尔代夫旅游网页设计(HTML+CSS+JavaScript+)实现
    目录​​前言介绍:​​​​网站首页:​​​​关于马尔代夫:​​​​酒店信息介绍:​​​​最新优惠政策:​​​​旅游须知模块:​​​​关于我们模块:​​​​主要源码结构:​​​......
  • java localDateTime
    #JAVA-LocalDateTime时间格式化,转换时间戳和源码分析##LocalDateTime`LocalDateTime`作为java8新加的时间类型,也是后面开发中常用的时间类型。作为时间类型,最关注的点......
  • Java学习之if---elif语句
    publicclasselif1{publicstaticvoidmain(String[]args){inttestScore=50;chargrade;if(testScore>=90){grade='A';}elseif(testScore>=80){grade=......
  • Java学习之do---while语句
    do—while1/*do-while结构如下do{循环体}while(条件表达式)特点:无条件的执行一次循环体,再来判断条件表达式的值,至少循环一次*/importjava.util.*;publicclassdh1......
  • Java学习之do-while-if语句实操
    //filenamedwif.java//题目要求:求100以内的素数,并输出/*由题目可知最小素数为2,其余偶数均为非素数,对于一个奇数k,使用3√k的每个整数j去除k,如果找到一个整数j能除尽k,则k......
  • Java学习之数组
    数组1//filenamesu.java数组讲解/*使用java数组一般需要经过三个步骤:①声明数组②分配空间③创建数组元素并赋值前两个步骤语法如下:数据类型[]数组名;//声明一维......
  • Java学习之字符串
    /*字符串:字符串就是一系列字符的序列。在java语言中字符串是一对双引号("")括起来的字符序列声明:字符串常量与字符常量不同,字符常量是用单引号(’)括起来的字符,而字符串......
  • .NET和JavaScript控件丨Infragistics功能简介
    使用InfragisticsUltimateUI/UX工具包简化开发,提供综合的企业级UI控件库和使用Indigo.Design的UX设计-开发协作工具-一个完整的设计到代码系统-集成原型、设计系统......
  • Java千问24:一文读懂Java语言方法的重写(覆盖、Override)
    ​很多初学Java语言的小伙伴,在学到“面向对象”这块内容的时候,都会学到的一个概念,那就是“方法的重写”。重写又叫覆盖,英文名为“Override”。虽然”重写”、”覆盖”、“O......