From Java to JSON
Creating a JSONObject from scratch
- JSONObject jsonObject = new JSONObject()
- .element( "string", "JSON" )
- .element( "integer", "1" )
- .element( "double", "2.0" )
- .element( "boolean", "true" );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );
- assertTrue( jsonObject.getBoolean("boolean") );
Creating a JSONObject from a JSON formatted string
- String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );
- assertTrue( jsonObject.getBoolean("boolean") );
Creating a JSONObject from a Map
- Map map = new HashMap();
- map.put( "string", "JSON" );
- map.put( "integer", "1" );
- map.put( "double", "2.0" );
- map.put( "boolean", "true" );
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( map );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );
- assertTrue( jsonObject.getBoolean("boolean") );
Creating a JSONObject from a JavaBean
- public class MyJavaBean {
- private String string;
- private int integer;
- private double dooble;
- private boolean bool;
- // getters & setters
- }
- MyJavaBean bean = new MyJavaBean();
- bean.setString( "JSON" );
- bean.setInteger( 1 );
- bean.setDooble( 2.0d );
- bean.setBool( true );
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertEquals( 2.0d, jsonObject.getDouble("dooble"), 0d );
- assertTrue( jsonObject.getBoolean("bool") );
Creating a JSONArray from scratch
- JSONArray jsonArray = new JSONArray()
- .element( "JSON" )
- .element( "1" )
- .element( "2.0" )
- .element( "true" );
- assertEquals( "JSON", jsonArray.getString(0) );
- assertEquals( 1, jsonArray.getInt(1) );
- assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
- assertTrue( jsonArray.getBoolean(3) );
Creating a JSONArray from a JSON formatted string
- String str = "['JSON', 1, 2.0, true]";
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( str );
- assertEquals( "JSON", jsonArray.getString(0) );
- assertEquals( 1, jsonArray.getInt(1) );
- assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
- assertTrue( jsonArray.getBoolean(3) );
Creating a JSONArray from a Collection
- List list = new ArrayList();
- list.add( "JSON" );
- list.add( "1" );
- list.add( "2.0" );
- list.add( "true" );
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( list );
- assertEquals( "JSON", jsonArray.getString(0) );
- assertEquals( 1, jsonArray.getInt(1) );
- assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
- assertTrue( jsonArray.getBoolean(3) );
Creating a JSONArray from an array
- Object[] array = new Object[]{ "JSON", "1", "2.0", "true" };
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( array );
- assertEquals( "JSON", jsonArray.getString(0) );
- assertEquals( 1, jsonArray.getInt(1) );
- assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
- assertTrue( jsonArray.getBoolean(3) );
JavaScript functions
- String str = "{'func': function( param ){ doSomethingWithParam(param); }}";
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );
- JSONFunction func = (JSONFunction) jsonObject.get("func");
- ArrayAssertions.assertEquals( new String[]{"param"}, func.getParams() );
- assertEquals( "doSomethingWithParam(param);", func.getText() );
Exclude properties
- String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setExcludes( new String[]{ "double", "boolean" } );
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str, jsonConfig );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertFalse( jsonObject.has("double") );
- assertFalse( jsonObject.has("boolean") );
Exclude properties (with filters)
- String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setJsonPropertyFilter( new PropertyFilter(){
- public boolean apply( Object source, String name, Object value ) {
- if( "double".equals(value) || "boolean".equals(value) ){
- return true;
- }
- return false;
- }
- });
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str, jsonConfig );
- assertEquals( "JSON", jsonObject.getString("string") );
- assertEquals( 1, jsonObject.getInt("integer") );
- assertFalse( jsonObject.has("double") );
- assertFalse( jsonObject.has("boolean") );
From JSON to Java
JSONObject to DynaBean
- String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );
- DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject );
- assertEquals( "JSON", bean.get("string") );
- assertEquals( new Integer(1), bean.get("integer") );
- assertEquals( new Double(2.0), bean.get("double") );
- assertEquals( Boolean.TRUE, bean.get("boolean") );
JSONObject to JavaBean
- public class MyJavaBean {
- private String string;
- private int integer;
- private double dooble;
- private boolean bool;
- // getters & setters
- }
- MyJavaBean bean = new MyJavaBean();
- bean.setString( "JSON" );
- bean.setInteger( 1 );
- bean.setDooble( 2.0d );
- bean.setBool( true );
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setRootClass( MyJavaBean.class );
- MyJavaBean bean2 = (MyJavaBean) JSONSerializer.toJava( jsonObject, jsonConfig );
- assertNotNull( bean2 );
- assertEquals( "JSON", bean2.getString() );
- assertEquals( 1, bean2.getInteger() );
- assertEquals( 2.0d, bean2.getDooble(), 0d );
- assertTrue( bean2.getBool() );
JSONArray to List
- List input = new ArrayList();
- input.add( "JSON" );
- input.add( "1" );
- input.add( "2.0" );
- input.add( "true" );
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );
- List output = (List) JSONSerializer.toJava( jsonArray );
- ArrayAssertions.assertEquals( input, output );
JSONArray to array
- List input = new ArrayList();
- input.add( "JSON" );
- input.add( "1" );
- input.add( "2.0" );
- input.add( "true" );
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );
- Object[] output = (Object[]) JSONSerializer.toJava( jsonArray, jsonConfig );
- Object[] expected = new Object[]{ "JSON", "1", "2.0", "true" };
- ArrayAssertions.assertEquals( expected, output);
JSONArray to array (type conversion)
- List input = new ArrayList();
- input.add( "1" );
- input.add( "2" );
- input.add( "3.0" );
- JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );
- jsonConfig.setRootClass( Integer.TYPE );
- int[] output = (int[]) JSONSerializer.toJava( jsonArray, jsonConfig );
- int[] expected = new int[]{ 1, 2, 3 };
- ArrayAssertions.assertEquals( expected, output);
JSONObject to JavaBean, exclude properties with filters
- public class MyJavaBean {
- private String string;
- private int integer;
- private double dooble = 0d;
- private boolean bool;
- // getters & setters
- }
- MyJavaBean bean = new MyJavaBean();
- bean.setString( "JSON" );
- bean.setInteger( 1 );
- bean.setDooble( 2.0d );
- bean.setBool( true );
- JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.setRootClass( MyJavaBean.class );
- jsonConfig.setJavaPropertyFilter( new PropertyFilter(){
- public boolean apply( Object source, String name, Object value ) {
- if( "bool".equals( name ) || "dooble".equals( name ) ){
- return true;
- }
- return false;
- }
- });
- MyJavaBean bean2 = (MyJavaBean) JSONSerializer.toJava( jsonObject, jsonConfig );
- assertNotNull( bean2 );
- assertEquals( "JSON", bean2.getString() );
- assertEquals( 1, bean2.getInteger() );
- assertEquals( 0d, bean2.getDooble(), 0d );
- assertFalse( bean2.getBool() );
本文详细介绍了如何在Java中创建和操作JSON对象及数组,包括从头构建、字符串解析、集合转换、JavaBean映射等多种方式,并展示了如何排除特定属性。
1132

被折叠的 条评论
为什么被折叠?



