博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json教程系列(2)-生成JSONObject的方法
阅读量:5139 次
发布时间:2019-06-13

本文共 1908 字,大约阅读时间需要 6 分钟。

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

1 public class User 2 { 3     public String username; 4     public String password; 5     public String getUsername() 6     { 7       return username; 8     } 9     public void setUsername(String username)10     {11       this.username = username;12     }13     public String getPassword()14     {15        return password;16     }17     public void setPassword(String password)18     {19        this.password = password;20     }21 }
View Code
1 import java.util.HashMap; 2 import net.sf.json.JSONObject; 3 public class Test { 4   5 public static void main(String args[]) { 6      7     User user = new User(); 8     user.setUsername("root"); 9     user.setPassword("1234");10     JSONObject json1 = JSONObject.fromObject(user);11     System.out.println(json1.toString());12     HashMap
userMap= new HashMap
();13 userMap.put("username", "root");14 userMap.put("password", "1234");15 JSONObject json2 = JSONObject.fromObject(userMap);16 System.out.println(json2.toString());17 18 }19 }
View Code

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

1 public static JSONObject fromObject(Object object)2 {3     return fromObject(object, new JsonConfig());4 }
View Code

此函数可以接受的参数类型为:JSON formatted strings,Maps,DynaBeans and JavaBeans。

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

1 if (JSONUtils.isNumber(object) || JSONUtils.isBoolean(object) || JSONUtils.isString(object))2 {3     return new JSONObject();4 }
View Code

JSONObject的构造函数有两个:

1 public JSONObject()2 {3         this.properties = new ListOrderedMap();4 }5 public JSONObject(boolean isNull)6 {7         this();8         this.nullObject = isNull;9 }
View Code

 

转载于:https://www.cnblogs.com/benpaobawoniu/p/6607441.html

你可能感兴趣的文章
SQL Server Failover Cluster (FCI) installations is the failure of the Network Name
查看>>
发布快半年了,终于有个案例了,大家有兴趣看看
查看>>
HTML几类标签的应用总结
查看>>
1.Java简介
查看>>
生无可恋的一叶知秋#百度刘超事件#
查看>>
box-sizing属性
查看>>
3.1.12 内置方法__str__(self)
查看>>
springmvc集成Freemarke配置的几点
查看>>
自己写的仿爱奇艺综艺频道轮播图,没有淡入淡出效果
查看>>
提炼游戏引擎系列:第一次迭代
查看>>
Django 学习
查看>>
Android的事件处理机制详解(二)-----基于监听的事件处理机制
查看>>
s5-12 RIP
查看>>
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
初探Oracle全栈虚拟机---GraalVM
查看>>
移动端的点击滚动逻辑实现。
查看>>
xpath
查看>>
sqlserver 中数据导入到mysql中的方法以及注意事项
查看>>
python 协程(单线程中的异步调用)(转廖雪峰老师python教程)
查看>>