需求分析: Person 的name屬性和addresss屬性在轉換爲json的時候 需轉換爲superman 和homeaddress。下面是相應的代碼處理部分。
public class Person { private String name; private String address; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "Person [name=" + name + ", address=" + address + ", password=" + password + "]"; } }
import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.processors.PropertyNameProcessor; import com.heavan.domain.Person; public class JsonUtil { public static void main(String[] args) { //屬性進行了映射 // address - homeaddress // name - superman String bean2Json = bean2Json(); System.out.println(bean2Json); Person json2Bean = json2Bean(bean2Json); System.out.println(json2Bean); } /** * 從對象轉換爲json * @return */ private static String bean2Json() { Person person = new Person(); person.setAddress("山東"); person.setName("釣島是中國的"); person.setPassword("美麗是你們的"); JsonConfig jsonConfig = new JsonConfig(); PropertyNameProcessor processor = new PropertyNameProcessor() { @Override public String processPropertyName(Class beanClass, String name) { if(name.equals("name")){ return "superman"; }else if (name.equals("address")) { return "homeaddress"; } return name; } }; jsonConfig.registerJsonPropertyNameProcessor(Person.class, processor); JSONObject jsonObject = JSONObject.fromObject(person,jsonConfig); return jsonObject.toString(); } /** * 從json 轉換爲bean * @param json * @return */ private static Person json2Bean(String json) { JsonConfig jsonConfig = new JsonConfig(); PropertyNameProcessor processor = new PropertyNameProcessor() { @Override public String processPropertyName(Class beanClass, String name) { if (name.equals("homeaddress")) { return "address"; } else if (name.equals("superman")) { return "name"; } return name; } }; jsonConfig.setRootClass(Person.class); jsonConfig.registerJavaPropertyNameProcessor(Person.class, processor); JSONObject jsonObject = JSONObject.fromObject(json, jsonConfig); Person bean = (Person) JSONObject.toBean(jsonObject, jsonConfig); return bean; } }