在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

java对象与json对象间的相互转换的方法

2017-3-7 12:50| 发布者: zhangjf| 查看: 1595| 评论: 0

摘要: 工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载。 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下。 JSONObject jsonO ...

工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载。

点击下载

1.简单的解析json字符串

首先将json字符串转换为json对象,然后再解析json对象,过程如下。

  1. JSONObject jsonObject = JSONObject.fromObject(jsonStr);
复制代码

根据json中的键得到它的值

  1. String name = jsonObject.getString("name");
  2. int num = jsonObject.getInt("num");
  3. String sex = jsonObject.getString("sex");
  4. int age = jsonObject.getInt("age");
复制代码

2.将json字符串转换为java对象

同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。

  1. JSONObject obj = new JSONObject().fromObject(jsonStr);
  2. //将json字符串转换为json对象
复制代码

将json对象转换为java对象

  1. Person jb = (Person)JSONObject.toBean(obj,Person.class);
  2. //将建json对象转换为Person对象
复制代码

3.将java对象转换为json字符串

先将java对象转换为json对象,在将json对象转换为json字符串

  1. JSONObject json = JSONObject.fromObject(obj);
  2. //将java对象转换为json对象
  3. String str = json.toString();//将json对象转换为字符串
复制代码

完整代码如下:

  1. package baz.parse;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import net.sf.json.JSON;
  5. import net.sf.json.JSONArray;
  6. import net.sf.json.JSONObject;
  7. import net.sf.json.JSONSerializer;
  8. import baz.bean.Person;
  9. public class ParseJson {
  10. private String jsonStr;
  11. public ParseJson() {
  12. }
  13. public ParseJson(String str){
  14. this.jsonStr = str;
  15. }
  16. /**
  17. * 解析json字符串
  18. */
  19. public void parse(){
  20. JSONObject jsonObject = JSONObject.fromObject(jsonStr);
  21. String name = jsonObject.getString("name");
  22. int num = jsonObject.getInt("num");
  23. String sex = jsonObject.getString("sex");
  24. int age = jsonObject.getInt("age");
  25. System.out.println(name + " " + num + " " + sex + " " + age);
  26. }
  27. //将json字符串转换为java对象
  28. public Person JSON2Object(){
  29. //接收{}对象,此处接收数组对象会有异常
  30. if(jsonStr.indexOf("[") != -1){
  31. jsonStr = jsonStr.replace("[", "");
  32. }
  33. if(jsonStr.indexOf("]") != -1){
  34. jsonStr = jsonStr.replace("]", "");
  35. }
  36. JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
  37. Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
  38. return jb;//返回一个Person对象
  39. }
  40. }
复制代码
  1. package baz.bean;
  2. public class Person {
  3. private String name;
  4. private int num;
  5. private String sex;
  6. private int age;
  7. public Person() {
  8. // TODO Auto-generated constructor stub
  9. }
  10. public Person(String name, int num, String sex, int age) {
  11. super();
  12. this.name = name;
  13. this.num = num;
  14. this.sex = sex;
  15. this.age = age;
  16. }
  17. public String getName() {
  18. return name;
  19. }
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23. public int getNum() {
  24. return num;
  25. }
  26. public void setNum(int num) {
  27. this.num = num;
  28. }
  29. public String getSex() {
  30. return sex;
  31. }
  32. public void setSex(String sex) {
  33. this.sex = sex;
  34. }
  35. public int getAge() {
  36. return age;
  37. }
  38. public void setAge(int age) {
  39. this.age = age;
  40. }
  41. }
复制代码

将java对象转换为json字符串

  1. package baz.cons;
  2. import net.sf.json.JSONObject;
  3. /**
  4. * 将java对象转换为json字符串
  5. * @author Administrator
  6. *
  7. */
  8. public class ConsJson {
  9. public ConsJson() {
  10. // TODO Auto-generated constructor stub
  11. }
  12. public String Object2Json(Object obj){
  13. JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
  14. String str = json.toString();//将json对象转换为字符串
  15. return str;
  16. }
  17. }
复制代码

测试类:

  1. package baz.test;
  2. import java.util.List;
  3. import baz.bean.Person;
  4. import baz.cons.ConsJson;
  5. import baz.parse.ParseJson;
  6. public class Test {
  7. public static void main(String[] args) {
  8. //将字符串转换为json对象,然后根据建得到相应的值
  9. ParseJson pj = new ParseJson("{"name":"gu","num":123456,"sex":"male","age":24}");
  10. pj.parse();
  11. //将一个json字符串转换为java对象
  12. Person p = pj.JSON2Object();
  13. System.out.println("Name:" + p.getName());
  14. System.out.println("Num:" + p.getNum());
  15. System.out.println("Sex:" + p.getSex());
  16. System.out.println("age:" + p.getAge());
  17. //将一个java对象转换为Json字符串
  18. Person p1 = new Person("gu1",123,"male",23);
  19. ConsJson cj = new ConsJson();
  20. String str1 = cj.Object2Json(p1);
  21. System.out.println(str1);
  22. }
  23. }
复制代码

测试输出如下:

gu 123456 male 24
Name:gu
Num:123456
Sex:male
age:24

  1. {"age":23,"name":"gu1","num":123,"sex":"male"}
复制代码

这只是最简单使用方法,其他的使用我会在后期中更新。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-5-4 02:14

Copyright 2015-2025 djqfx

返回顶部