您好,欢迎来到年旅网。
搜索
您的当前位置:首页json教程系列(2)-生成JSONObject的方法

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

来源:年旅网
json教程系列(2)-⽣成JSONObject的⽅法

⽣成JSONObject⼀般有两种⽅式,通过javabean或者map类型来⽣成。如下⾯的例⼦:

1public class User2{

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}

1import java.util.HashMap;

2import net.sf.json.JSONObject;3public class Test {4

5public 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\14 userMap.put(\"password\

15 JSONObject json2 = JSONObject.fromObject(userMap);16 System.out.println(json2.toString());17 18}19}

下⾯从源码层次分析⼀下JSONObject.fromObject()⽅法:

1public static JSONObject fromObject(Object object)2{

3 return fromObject(object, new JsonConfig());4}

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

【注意】DynaBeans是commons-beanutils定义的动态bean。DynaBean并不是Java中所定义的Bean,⽽是⼀种\"假\"的Bean。因为它并不是通过getXXX和setXXX⽅法,对XXX属性进⾏取值和设值的。

如果object是其他类型的参数呢?⽐如说数字,逻辑值,⾮json格式的字符串,那么将⽣产空的JSONObject对象。

1if (JSONUtils.isNumber(object) || JSONUtils.isBoolean(object) || JSONUtils.isString(object))2{

3 return new JSONObject();4}

JSONObject的构造函数有两个:

1public JSONObject()2{

3 this.properties = new ListOrderedMap();4}

5public JSONObject(boolean isNull)6{

7 this();

8 this.nullObject = isNull;9}

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务