java中如何将对象转成json格式字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何将对象转成json格式字符串相关的知识,希望对你有一定的参考价值。

用Gson转换就行了,需要下载jar包

例子:

Person person=new Person();
Gson gson=new Gson();
String json=gson.toJson(person);


参考技术A 用解析,然后直接进行转换就可以了。 参考技术B JSONObject.fromString
JSONObject.fromObject
参考技术C 你可以试试gson

怎样把JSON对象快速的转成java对象

参考技术A 用阿里开源的fastjson 参考技术B 1.简单的解析json字符串
首先将json字符串转换为json对象,然后再解析json对象,过程如下。
JSONObject jsonObject = JSONObject.fromObject(jsonStr);

[java] view plain copy
<pre></pre><span style="white-space:pre"></span>
<pre></pre>
根据json中的键得到它的值
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");

2.将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

3.将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串
完整代码如下:

[java] view plain copy
package baz.parse;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import baz.bean.Person;

public class ParseJson

private String jsonStr;

public ParseJson()



public ParseJson(String str)
this.jsonStr = str;

/**
* 解析json字符串
*/
public void parse()
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");

System.out.println(name + " " + num + " " + sex + " " + age);

//将json字符串转换为java对象
public Person JSON2Object()
//接收对象,此处接收数组对象会有异常
if(jsonStr.indexOf("[") != -1)
jsonStr = jsonStr.replace("[", "");

if(jsonStr.indexOf("]") != -1)
jsonStr = jsonStr.replace("]", "");

JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
return jb;//返回一个Person对象




[java] view plain copy
package baz.bean;

public class Person

private String name;
private int num;
private String sex;
private int age;

public Person()
// TODO Auto-generated constructor stub


public Person(String name, int num, String sex, int age)
super();
this.name = name;
this.num = num;
this.sex = sex;
this.age = age;


public String getName()
return name;


public void setName(String name)
this.name = name;


public int getNum()
return num;


public void setNum(int num)
this.num = num;


public String getSex()
return sex;


public void setSex(String sex)
this.sex = sex;


public int getAge()
return age;


public void setAge(int age)
this.age = age;




将java对象转换为json字符串

[java] view plain copy
package baz.cons;

import net.sf.json.JSONObject;

/**
* 将java对象转换为json字符串
* @author Administrator
*
*/
public class ConsJson

public ConsJson()
// TODO Auto-generated constructor stub


public String Object2Json(Object obj)
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串

return str;



测试类:
[java] view plain copy
package baz.test;

import java.util.List;

import baz.bean.Person;
import baz.cons.ConsJson;
import baz.parse.ParseJson;

public class Test
public static void main(String[] args)

//将字符串转换为json对象,然后根据建得到相应的值
ParseJson pj = new ParseJson("\"name\":\"gu\",\"num\":123456,\"sex\":\"male\",\"age\":24");
pj.parse();

//将一个json字符串转换为java对象
Person p = pj.JSON2Object();
System.out.println("Name:" + p.getName());
System.out.println("Num:" + p.getNum());
System.out.println("Sex:" + p.getSex());
System.out.println("age:" + p.getAge());

//将一个java对象转换为Json字符串
Person p1 = new Person("gu1",123,"male",23);
ConsJson cj = new ConsJson();
String str1 = cj.Object2Json(p1);
System.out.println(str1);




测试输出如下:
gu 123456 male 24
Name:gu
Num:123456
Sex:male
age:24
"age":23,"name":"gu1","num":123,"sex":"male"

以上是关于java中如何将对象转成json格式字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何将json字符串转成带有对象引用的java对象

用C#语言将json格式数据转成json对象

JAVA对象转换成JSON字符串与JAVA String有啥区别

如何将数组转换成JSON-CSDN论坛

ssm框架如何将存有json对象的数组传到后端并接受

Java中对象和JSON互相转换的工具类