json教程系列(2)-生成JSONObject的方法

    xiaoxiao2021-03-25  74

    生成JSONObject一般有两种方式,通过javabean或者map类型来生成。如下面的例子:

    public class User {     public String username;     public String password;     public String getUsername()     {       return username;     }     public void setUsername(String username)     {       this.username = username;     }     public String getPassword()     {        return password;     }     public void setPassword(String password)     {        this.password = password;     } } import java.util.HashMap; import net.sf.json.JSONObject; public class Test { public static void main(String args[]) {          User user = new User();     user.setUsername("root");     user.setPassword("1234");     JSONObject json1 = JSONObject.fromObject(user);     System.out.println(json1.toString());     HashMap<Object,Object> userMap= new HashMap<Object,Object>();     userMap.put("username", "root");     userMap.put("password", "1234");     JSONObject json2 = JSONObject.fromObject(userMap);     System.out.println(json2.toString());      } }

    下面从源码层次分析一下JSONObject.fromObject()方法:

    public static JSONObject fromObject(Object object) {     return fromObject(object, new JsonConfig()); }

    此函数可以接受的参数类型为:JSON formatted strings,Maps,DynaBeans and JavaBeans。 【注意】DynaBeans是commons-beanutils定义的动态bean。DynaBean并不是Java中所定义的Bean,而是一种"假"的Bean。因为它并不是通过getXXX和setXXX方法,对XXX属性进行取值和设值的。 如果object是其他类型的参数呢?比如说数字,逻辑值,非json格式的字符串,那么将生产空的JSONObject对象。

    if (JSONUtils.isNumber(object) || JSONUtils.isBoolean(object) || JSONUtils.isString(object)) {     return new JSONObject(); } JSONOb

    ject的构造函数有两个:

    public JSONObject() {         this.properties = new ListOrderedMap(); } public JSONObject(boolean isNull) {         this();         this.nullObject = isNull; }

     

    不过,说实话,第二个构造函数使用情况很少。

    转载请注明原文地址: https://ju.6miu.com/read-26540.html

    最新回复(0)