1.将字符串转为JSON
使用JSONObject.fromObject(str)方法即可将字符串转为JSON对象
使用JSONObject.put(“attribute”,“value”)可为JSON添加属性
如果需要转为JSON数组,只需使用JSONArray对象提供的方法即可
/**
- 一些简单的转换
*/
public static void transformStringTest() {
String str = “{” + ““id”:” + ““1”,” + ““name”:” + ““zhangsan””
+ “}”;
//1.将字符串转为JSON
JSONObject jsonObj = JSONObject.fromObject(str);
System.out.println(jsonObj.toString());
//JSON添加属性
jsonObj.put(“age”, “22”);
System.out.println(jsonObj.toString());
//2.将对象转为数组
JSONArray jsonArr = JSONArray.fromObject(jsonObj);
System.out.println(jsonArr.toString());
//3.将数组添加到JSON对象中
JSONObject obj = new JSONObject();
obj.put(“employees”, jsonArr);
System.out.println(obj.toString());
}
/* 输出内容
- {“id”:“1”,“name”:“zhangsan”}
- {“id”:“1”,“name”:“zhangsan”,“age”:“22”}
- [{“id”:“1”,“name”:“zhangsan”,“age”:“22”}]
- {“employees”:[{“id”:“1”,“name”:“zhangsan”,“age”:“22”}]}
*/
2.将对象转为JSON
首先创建People类
public class People {
private String name;
private String idcard;
public People() {
}
public People(String name, String idcard) {
this.name = name;
this.idcard = idcard;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
}
将对象转为JSON同样使用SONObject.fromObject(obj)方法
如果是一个List,转为JSON时需要使用JSONArray将对象转为JSON数组
public static void transformObjectTest() {
People p1 = new People(“a”, “111111”);
//1.将对象转为json
System.out.println(JSONObject.fromObject(p1));
List peopleList = new ArrayList();
peopleList.add(p1);
//2.将list转为json(需要使用数组JSONArray)
JSONArray arr = JSONArray.fromObject(peopleList);
System.out.println(arr.toString());
}
/*输出内容
* {“idcard”:“111111”,“name”:“a”}
* [{“idcard”:“111111”,“name”:“a”}]
*/
3.JSON转为bean
json转为bean的方法也非常简单,只需使用JSONObject.toBean()方法即可,使用该方法的时候需要传入Bean的class
/**
* 将json转换为bean
* @param json
* @param type
* @return
*/
public static Object transformJsonToBean(String json, Class type) {
JSONObject jsonObject = JSONObject.fromObject(json);
return JSONObject.toBean(jsonObject, type);
}
4.JSON转为list集合
由于是集合,所以需要使用JSONArray,JSONArray提供了toCollection方法,使用该方法同样需要传入bean的class
/**
- 项目名称:tools
- 项目包名:com.songfayuantools.json
- 创建时间:2017年7月31日上午11:58:51
- 创建者:Administrator-宋发元
- 创建地点:
*/
package com.songfayuantools.json;
import com.songfayuantools.entity.UserInfo;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
/**
-
描述:JSONObject使用方法详解
-
JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。
-
@author songfayuan
-
2017年7月31日上午11:58:51
*/
public class Json {/**
- 描述:json字符串转java代码
- @author songfayuan
- 2017年8月2日下午2:24:47
*/
public static void jsonToJava() {
System.out.println(“json字符串转java代码”);
String jsonStr = “{“password”:“123456”,“username”:“张三”}”;
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
String username = jsonObject.getString(“username”);
String password = jsonObject.getString(“password”);
System.err.println(“json—>java \n username=”+username+“\t passwor=”+password);
}
/**
- 描述:java代码封装为json字符串
- @author songfayuan
- 2017年8月2日下午2:30:58
*/
public static void javaToJSON() {
System.out.println(“java代码封装为json字符串”);
JSONObject jsonObject = new JSONObject();
jsonObject.put(“username”, “宋发元”);
jsonObject.put(“age”, 24);
jsonObject.put(“sex”, “男”);
System.out.println("java—>json \n " + jsonObject.toString());
}
/**
- 描述:json字符串转xml字符串
- @author songfayuan
- 2017年8月2日下午2:56:30
*/
public static void jsonToXML() {
System.out.println(“json字符串转xml字符串”);
String jsonStr = “{“username”:“宋发元”,“password”:“123456”,“age”:“24”}”;
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
XMLSerializer xmlSerializer = new XMLSerializer();
xmlSerializer.setRootName(“user_info”);
xmlSerializer.setTypeHintsEnabled(false);
String xml = xmlSerializer.write(jsonObject);
System.out.println(“json—>xml \n” + xml);
}
/**
- 描述:xml字符串转json字符串
- @author songfayuan
- 2017年8月2日下午3:19:25
*/
public static void xmlToJSON() {
System.out.println(“xml字符串转json字符串”);
String xml = “<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info>123456宋发元</user_info>”;
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);
System.out.println(“xml—>json \n” + json.toString());
}
/**
- 描述:javaBean转json字符串
- @author songfayuan
- 2017年8月2日下午3:39:10
*/
public static void javaBeanToJSON() {
System.out.println(“javaBean转json字符串”);
UserInfo userInfo = new UserInfo();
userInfo.setUsername(“宋发元”);
userInfo.setPassword(“123456”);
JSONObject jsonObject = JSONObject.fromObject(userInfo);
System.out.println(“JavaBean–>json \n” + jsonObject.toString());
}
/**
- 描述:javaBean转xml字符串
- @author songfayuan
- 2017年8月2日下午3:48:08
*/
public static void javaBeanToXML() {
System.out.println(“javaBean转xml字符串”);
UserInfo userInfo = new UserInfo();
userInfo.setUsername(“songfayuan”);
userInfo.setPassword(“66666”);
JSONObject jsonObject = JSONObject.fromObject(userInfo);
XMLSerializer xmlSerializer = new XMLSerializer();
String xml = xmlSerializer.write(jsonObject, “UTF-8”);
System.out.println(“javaBean—>xml \n” + xml);
}
public static void main(String args[]) {
// jsonToJava();
// javaToJSON();
// jsonToXML();
// xmlToJSON();
// javaBeanToJSON();
javaBeanToXML();
}
}