Java之字符串转换成Java对象方式
作者:Summer⊙
这篇文章主要介绍了Java之字符串转换成Java对象方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Java字符串转换成Java对象
方法一
public static void main(String[] args) { String testParam = "{\"id\":\"1001\",\"name\":\"oowangfanoo\",\"sex\":\"30\"}"; TestEntity testEntity = JSON.toJavaObject(JSONObject.parseObject(testParam),TestEntity.class) ; System.out.println(testEntity.toString()); }
TestEntity 为自己创建的实体类
方法二
JSONArray jsonArray= JSONArray.parseArray(jsonObject.get("body").toString()); System.out.println(jsonArray +"::::"+ jsonArray.size()); for(int i=0;i<jsonArray.size();i++){ JSONObject object= (JSONObject) jsonArray.get(i); System.out.println(object.get("cabinet_id")); }
字符串 Java对象 互相转换
基于Json-Lib、Org.Json、Jackson、Gson、FastJson五种方式转换json类型
json-lib时间有些久远,jar包只更新到2010年
org.json用起来有些繁琐
Jackson、Gson、FastJson只需一两句话就可以搞定
1、FastJson
Maven依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.37</version> </dependency>
测试demo
import com.alibaba.fastjson.JSON; public class FastJsonDemo { public static void main(String[] args) { //创建测试object User user = new User("李宁",24,"北京"); System.out.println(user); //转成json字符串 String json = JSON.toJSON(user).toString(); System.out.println(json); //json字符串转成对象 User user1 = JSON.parseObject(json,User.class); System.out.println(user1); } }
2、Json-Lib
json-lib时间有些久远,jar包只更新到2010年
Maven依赖:
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.2.3</version> <classifier>jdk15</classifier> </dependency>
public static void jsonStrToJava(){ //定义两种不同格式的字符串 String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市海淀区\"}"; String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市海淀区\"}]"; //1、使用JSONObject JSONObject jsonObject=JSONObject.fromObject(objectStr); Student stu=(Student)JSONObject.toBean(jsonObject, Student.class); //2、使用JSONArray JSONArray jsonArray=JSONArray.fromObject(arrayStr); //获得jsonArray的第一个元素 Object o=jsonArray.get(0); JSONObject jsonObject2=JSONObject.fromObject(o); Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class); System.out.println("stu:"+stu); System.out.println("stu2:"+stu2); }
打印结果为:
stu:Student [name=JSON, age=24, address=北京市海淀区]
stu2:Student [name=JSON, age=24, address=北京市海淀区]
3、org.json
Maven依赖:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20170516</version> </dependency>
测试demo
import org.json.JSONObject; public class OrgJsonDemo { public static void main(String[] args) { //创建测试object User user = new User("李宁",24,"北京"); System.out.println(user); //转成json字符串 String json = new JSONObject(user).toString(); System.out.println(json); //json字符串转成对象 JSONObject jsonObject = new JSONObject(json); String name = jsonObject.getString("name"); Integer age = jsonObject.getInt("age"); String location = jsonObject.getString("location"); User user1 = new User(name,age,location); System.out.println(user1); } }
4、Jackson
Maven依赖:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency>
测试demo
import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDemo { public static void main(String[] args) { //创建测试object User user = new User("李宁",24,"北京"); System.out.println(user); //转成json字符串 ObjectMapper mapper = new ObjectMapper(); try { String json = mapper.writeValueAsString(user); System.out.println(json); //json字符串转成对象 User user1 = mapper.readValue(json,User.class); System.out.println(user1); } catch (java.io.IOException e) { e.printStackTrace(); } } }
5、Gson
Maven依赖:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.1</version> </dependency>
测试demo
import com.google.gson.Gson; public class GsonDemo { public static void main(String[] args) { //创建测试object User user = new User("李宁",24,"北京"); System.out.println(user); //转成json字符串 Gson gson = new Gson(); String json = gson.toJson(user); System.out.println(json); //json字符串转成对象 User user1 = gson.fromJson(json,User.class); System.out.println(user1); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。