如何将数据实体转换为 JSON 字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据实体转换为 JSON 字符串相关的知识,希望对你有一定的参考价值。
将数据实体转换为 JSON 字符串的方法:先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串
参考代码如下:
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对象
参考技术A <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="javascript">
var
t="'firstName': 'cyra', 'lastName': 'richardson', 'address':
'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA',
'postalCode': 98052 ,'phoneNumbers': [ '425-777-7777','206-777-7777' ]
";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[name:'zhangsan',age:'24',name:'lisi',age:'30',name:'wangwu',age:'16',name:'tianqi',age:'7'] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++)
alert(myobj[i].name);
alert(myobj[i].age);
var
t3="[['<a href=#
onclick=openLink(14113295100,社旗县国税局桥头税务
所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','
社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]";
//通过eval() 函数可以将JSON字符串转化为对象
var obj = eval(t3);
for(var i=0;i<obj.length;i++)
for(var j=0;j<obj[i].length;j++)
alert(obj[i][j]);
/*
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。
var jsonText = JSON.stringify(obj);
alert(jsonText);
//如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。
var myObject = JSON.parse(myJSONtext, filter);
//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:
//如
myData = JSON.parse(text, function (key, value)
return key.indexOf('date') >= 0 ? new Date(value) : value; );
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。
var myJSONText = JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
示例
jackJson
JackJson
jackJson
将javaBean对象转换为json字符串
1、先创建一个jackJson的核心对象 ObjectMapper以及实体类对象
ObjectMapper om=new ObjectMapper();
User user=new User("才春磊",20,"1020308280@qq.com");
2、把实体类转换成json格式的字符串
try
String userstr = om.writeValueAsString(user);
System.out.println(userstr);
catch (IOException e)
e.printStackTrace();
/*
打印结果
"name":"才春磊","age":20,"email":"1020308280@qq.com"
*/
通过ObjectMapper中的writeValueAsString()方法将实体类的对象转换成了Json字符串
将json字符串写入文件
try
om.writeValue(new File("D:\\\\json.txt"),user);
catch (IOException e)
e.printStackTrace();
通过ObjectMapper中的writeValue()方法将实体类转换的Json字符串写入文件中
注解:
@JsonIgnore 写在实体类中,表示在将对象转换为Json字符串的时候忽略这个属性
@JsonFormat(pattern = "yyyy-MM-dd") 写在实体类中,表示将实体类对象转换为Json字符串的时候,日期类属性,以什么形式转换为Json字符串
将json字符串转换成实体类对象
public static void main(String[] args)
//把Json格式的字符串转换成指定的实体类对象
//创建jackJson的核心类ObjectMapper
ObjectMapper om =new ObjectMapper();
//创建User实体类对象
User user=new User("才春磊",20,"asdf");
try
//将实体类对象转换成Json字符串
String userStr = om.writeValueAsString(user);
System.out.println(userStr);
//将User类转换过来的Json字符串转回Json对象
//User.class反射的方法
User user1 = om.readValue(userStr, User.class);
System.out.println(user);
catch (IOException e)
e.printStackTrace();
/*
运行结果
"name":"才春磊","age":20,"email":"asdf"
Username='才春磊', age=20, email='asdf'
*/
将List转换为json字符串
public static void main(String[] args)
ObjectMapper om =new ObjectMapper();
User user=new User("才春磊",20,"aaaa");
User user2=new User("才春磊1",21,"bbbb");
User user3=new User("才春磊2",22,"cccc");
List<User> list=new ArrayList<User>();
list.add(user);
list.add(user2);
list.add(user3);
//把list集合转换成json字符串
try
String listStr = om.writeValueAsString(list);
System.out.println(listStr);
catch (IOException e)
e.printStackTrace();
/*
运行结果为
["name":"才春磊","age":20,"email":"aaaa",
"name":"才春磊1","age":21,"email":"bbbb",
"name":"才春磊2","age":22,"email":"cccc"]
*/
将Map转换为json字符串
public static void main(String[] args)
ObjectMapper om=new ObjectMapper();
Map<String,Object> map=new HashMap<String,Object>();
map.put("name","才春磊");
map.put("sex","男");
map.put("age",20);
try
String jsonMap = om.writeValueAsString(map);
System.out.println(jsonMap);
catch (IOException e)
e.printStackTrace();
/*
运行结果
"sex":"男","name":"才春磊","age":20
*/
以上是关于如何将数据实体转换为 JSON 字符串的主要内容,如果未能解决你的问题,请参考以下文章
查询Mysql表之后将结果转换为json时如何能够保持字段的原有数据类型?