`

JSON — json-lib ——— java与json互转 实例代码片断(一)

阅读更多

http://json-lib.sourceforge.net/snippets.html#Creating%20a%20JSONArray%20from%20a%20JSON%20formatted%20string

From Java to JSON

Creating a JSONObject from scratch

  1. JSONObject jsonObject = new JSONObject()   
  2.                               .element( "string""JSON" )   
  3.                               .element( "integer""1" )   
  4.                               .element( "double""2.0" )   
  5.                               .element( "boolean""true" );   
  6. assertEquals( "JSON", jsonObject.getString("string") );         
  7. assertEquals( 1, jsonObject.getInt("integer") );         
  8. assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );         
  9. assertTrue( jsonObject.getBoolean("boolean") );         
[Index|From Java to JSON]

Creating a JSONObject from a JSON formatted string

  1. String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";   
  2. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );   
  3. assertEquals( "JSON", jsonObject.getString("string") );         
  4. assertEquals( 1, jsonObject.getInt("integer") );         
  5. assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );         
  6. assertTrue( jsonObject.getBoolean("boolean") );         
[Index|From Java to JSON]

Creating a JSONObject from a Map

  1. Map map = new HashMap();   
  2. map.put( "string""JSON" );   
  3. map.put( "integer""1" );   
  4. map.put( "double""2.0" );   
  5. map.put( "boolean""true" );   
  6. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( map );   
  7. assertEquals( "JSON", jsonObject.getString("string") );         
  8. assertEquals( 1, jsonObject.getInt("integer") );         
  9. assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );         
  10. assertTrue( jsonObject.getBoolean("boolean") );         
[Index|From Java to JSON]

Creating a JSONObject from a JavaBean

  1. public class MyJavaBean {   
  2.    private String string;   
  3.    private int integer;   
  4.    private double dooble;   
  5.    private boolean bool;   
  6.   
  7.    // getters & setters   
  8. }   
  9.   
  10. MyJavaBean bean = new MyJavaBean();   
  11. bean.setString( "JSON" );   
  12. bean.setInteger( 1 );   
  13. bean.setDooble( 2.0d );   
  14. bean.setBool( true );   
  15. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );   
  16. assertEquals( "JSON", jsonObject.getString("string") );         
  17. assertEquals( 1, jsonObject.getInt("integer") );         
  18. assertEquals( 2.0d, jsonObject.getDouble("dooble"), 0d );         
  19. assertTrue( jsonObject.getBoolean("bool") );         
[Index|From Java to JSON]

Creating a JSONArray from scratch

  1. JSONArray jsonArray = new JSONArray()   
  2.                               .element( "JSON" )   
  3.                               .element( "1" )   
  4.                               .element( "2.0" )   
  5.                               .element( "true" );   
  6. assertEquals( "JSON", jsonArray.getString(0) );         
  7. assertEquals( 1, jsonArray.getInt(1) );         
  8. assertEquals( 2.0d, jsonArray.getDouble(2), 0d );         
  9. assertTrue( jsonArray.getBoolean(3) );         
[Index|From Java to JSON]

Creating a JSONArray from a JSON formatted string

  1. String str = "['JSON', 1, 2.0, true]";   
  2. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( str );   
  3. assertEquals( "JSON", jsonArray.getString(0) );         
  4. assertEquals( 1, jsonArray.getInt(1) );         
  5. assertEquals( 2.0d, jsonArray.getDouble(2), 0d );         
  6. assertTrue( jsonArray.getBoolean(3) );         
[Index|From Java to JSON]

Creating a JSONArray from a Collection

  1. List list = new ArrayList();   
  2. list.add( "JSON" );   
  3. list.add( "1" );   
  4. list.add( "2.0" );   
  5. list.add( "true" );   
  6. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( list );   
  7. assertEquals( "JSON", jsonArray.getString(0) );         
  8. assertEquals( 1, jsonArray.getInt(1) );         
  9. assertEquals( 2.0d, jsonArray.getDouble(2), 0d );         
  10. assertTrue( jsonArray.getBoolean(3) );         
[Index|From Java to JSON]

Creating a JSONArray from an array

  1. Object[] array = new Object[]{ "JSON""1""2.0""true" };   
  2. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( array );   
  3. assertEquals( "JSON", jsonArray.getString(0) );         
  4. assertEquals( 1, jsonArray.getInt(1) );         
  5. assertEquals( 2.0d, jsonArray.getDouble(2), 0d );         
  6. assertTrue( jsonArray.getBoolean(3) );         
[Index|From Java to JSON]

JavaScript functions

  1. String str = "{'func': function( param ){ doSomethingWithParam(param); }}";   
  2. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );   
  3. JSONFunction func = (JSONFunction) jsonObject.get("func");   
  4. ArrayAssertions.assertEquals( new String[]{"param"}, func.getParams() );   
  5. assertEquals( "doSomethingWithParam(param);", func.getText() );   
[Index|From Java to JSON]

Exclude properties

  1. String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";   
  2. JsonConfig jsonConfig = new JsonConfig();   
  3. jsonConfig.setExcludes( new String[]{ "double""boolean" } );   
  4. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str, jsonConfig );   
  5. assertEquals( "JSON", jsonObject.getString("string") );         
  6. assertEquals( 1, jsonObject.getInt("integer") );         
  7. assertFalse( jsonObject.has("double") );      
  8. assertFalse( jsonObject.has("boolean") );      
[Index|From Java to JSON]

Exclude properties (with filters)

  1. String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";   
  2. JsonConfig jsonConfig = new JsonConfig();   
  3. jsonConfig.setJsonPropertyFilter( new PropertyFilter(){     
  4.    public boolean apply( Object source, String name, Object value ) {     
  5.       if"double".equals(value) || "boolean".equals(value) ){     
  6.          return true;     
  7.       }     
  8.       return false;     
  9.    }     
  10. });     
  11. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str, jsonConfig );   
  12. assertEquals( "JSON", jsonObject.getString("string") );         
  13. assertEquals( 1, jsonObject.getInt("integer") );         
  14. assertFalse( jsonObject.has("double") );      
  15. assertFalse( jsonObject.has("boolean") );      
[Index|From Java to JSON]

From JSON to Java

JSONObject to DynaBean

  1. String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";   
  2. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );   
  3. DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject );   
  4. assertEquals( "JSON", bean.get("string") );         
  5. assertEquals( new Integer(1), bean.get("integer") );         
  6. assertEquals( new Double(2.0), bean.get("double") );         
  7. assertEquals( Boolean.TRUE, bean.get("boolean") );      
[Index|From JSON to Java]

JSONObject to JavaBean

  1. public class MyJavaBean {   
  2.    private String string;   
  3.    private int integer;   
  4.    private double dooble;   
  5.    private boolean bool;   
  6.   
  7.    // getters & setters   
  8. }   
  9.   
  10. MyJavaBean bean = new MyJavaBean();   
  11. bean.setString( "JSON" );   
  12. bean.setInteger( 1 );   
  13. bean.setDooble( 2.0d );   
  14. bean.setBool( true );   
  15. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );   
  16. JsonConfig jsonConfig = new JsonConfig();   
  17. jsonConfig.setRootClass( MyJavaBean.class );   
  18. MyJavaBean bean2 = (MyJavaBean) JSONSerializer.toJava( jsonObject, jsonConfig );   
  19. assertNotNull( bean2 );   
  20. assertEquals( "JSON", bean2.getString() );   
  21. assertEquals( 1, bean2.getInteger() );   
  22. assertEquals( 2.0d, bean2.getDooble(), 0d );   
  23. assertTrue( bean2.getBool() );   
[Index|From JSON to Java]

JSONArray to List

  1. List input = new ArrayList();   
  2. input.add( "JSON" );   
  3. input.add( "1" );   
  4. input.add( "2.0" );   
  5. input.add( "true" );   
  6. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );   
  7. List output = (List) JSONSerializer.toJava( jsonArray );   
  8. ArrayAssertions.assertEquals( input, output );   
[Index|From JSON to Java]

JSONArray to array

  1. List input = new ArrayList();   
  2. input.add( "JSON" );   
  3. input.add( "1" );   
  4. input.add( "2.0" );   
  5. input.add( "true" );   
  6. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );   
  7. JsonConfig jsonConfig = new JsonConfig();   
  8. jsonConfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );   
  9. Object[] output = (Object[]) JSONSerializer.toJava( jsonArray, jsonConfig );   
  10. Object[] expected = new Object[]{ "JSON""1""2.0""true" };   
  11. ArrayAssertions.assertEquals( expected, output);   
[Index|From JSON to Java]

JSONArray to array (type conversion)

  1. List input = new ArrayList();   
  2. input.add( "1" );   
  3. input.add( "2" );   
  4. input.add( "3.0" );   
  5. JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );   
  6. JsonConfig jsonConfig = new JsonConfig();   
  7. jsonConfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );   
  8. jsonConfig.setRootClass( Integer.TYPE );   
  9. int[] output = (int[]) JSONSerializer.toJava( jsonArray, jsonConfig );   
  10. int[] expected = new int[]{ 123 };   
  11. ArrayAssertions.assertEquals( expected, output);   
[Index|From JSON to Java]

JSONObject to JavaBean, exclude properties with filters

  1. public class MyJavaBean {   
  2.    private String string;   
  3.    private int integer;   
  4.    private double dooble = 0d;   
  5.    private boolean bool;   
  6.   
  7.    // getters & setters   
  8. }   
  9.   
  10. MyJavaBean bean = new MyJavaBean();   
  11. bean.setString( "JSON" );   
  12. bean.setInteger( 1 );   
  13. bean.setDooble( 2.0d );   
  14. bean.setBool( true );   
  15. JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( bean );   
  16. JsonConfig jsonConfig = new JsonConfig();   
  17. jsonConfig.setRootClass( MyJavaBean.class );   
  18. jsonConfig.setJavaPropertyFilter( new PropertyFilter(){     
  19.    public boolean apply( Object source, String name, Object value ) {     
  20.       if"bool".equals( name ) || "dooble".equals( name ) ){     
  21.          return true;     
  22.       }     
  23.       return false;     
  24.    }     
  25. });    
  26. MyJavaBean bean2 = (MyJavaBean) JSONSerializer.toJava( jsonObject, jsonConfig );   
  27. assertNotNull( bean2 );   
  28. assertEquals( "JSON", bean2.getString() );   
  29. assertEquals( 1, bean2.getInteger() );   
  30. assertEquals( 0d, bean2.getDooble(), 0d );   
  31. assertFalse( bean2.getBool() );   
[Index|From JSON to Java]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics