風(fēng)人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數(shù)據(jù)加載中……

          svenson, 一個用于生成和解析JSON數(shù)據(jù)格式的Java5開源類庫 (ZT)


          轉(zhuǎn)載自 http://www.aygfsteel.com/xmatthew/archive/2008/12/29/248998.html

          svenson是一個用于生成和解析JSON數(shù)據(jù)格式的Java5開源類庫。它能夠?qū)SON數(shù)據(jù)集轉(zhuǎn)換成Java對象或相反的操作。

          下面是一些示例:

          Svenson offers you the possibility to generate JSON datasets from your java classes being a nested graph of:

          • POJOs
          • Java Beans
          • Arrays
          • Collections
          • Maps

          In the most simple case you can just do a

          import org.svenson.JSON;



          ...







          String json = JSON.defaultJSON().forValue( yourObjects );

          you can also generate JSON while ignoring certain properties:

          import org.svenson.JSON;



          ...







          String json = JSON.defaultJSON().forValue( yourObjects, Arrays.asList("foo","bar"));

          This would generate JSON for "yourObjects" while ignoring all properties named "foo" and "bar" in all beans.

          @JSONProperty

          The org.svenson.JSONProperty annotation allows you to define another JSON property name for your properties, make JSON ignore your properties completely or ignore them if they are null.

          import org.svenson.JSON;



          import org.svenson.JSONProperty;







          public class MyBean



          {



             
          private String foo,bar,baz;

             
          @JSONProperty("notFoo")
             
          public String getFoo()
             
          {
               
          return foo;
             
          }

             
          @JSONProperty(ignoreIfNull = true)
             
          public String getBar()
             
          {
                 
          return foo;
             
          }

             
          @JSONProperty(ignore = true)
             
          public String getBaz()
             
          {
                 
          return foo;
             
          }

          }

          Here the foo property would be generated as "notFoo" property in JSON, the "bar" property would be ignored if it is null, and the "baz" property would be ignored completely.

          JSONable

          If your classes implement the org.svenson.JSONable, they can provide their own JSON representation.

          import org.svenson.JSON;



          import org.svenson.JSONable;







          public class MyClass implements JSONable



          {



             
          private String member;



             
          ...



             
          public String toJSON()



             
          {



                   
          return JSON.defaultJSON().quote(this.member);



             
          }



          }

          Here MyClass would just generate one of its members as JSON string. As you can see, you can use the JSON class to help you implementing toJSON().

          JSONifier

          A JSONifier is a class that can convert another class into JSON. It needs to implement org.svenson.JSONifier.

          import org.svenson.JSON;



          import org.svenson.JSONifier;







          public class MyJSONifier implements JSONifier



          {



             
          public String toJSON(Object o)



             
          {



                   
          MyClass myClass = (MyClass)o;



                   
          return JSON.defaultJSON().quote(myClass.getMember());



             
          }



          }

          This would be a simple JSONifier that turns instances of MyClass into JSON by replacing them with one of its members. To use this JSONifier you have to register it in your own JSON instance.

          import org.svenson.JSON;



             
          ...



             
          // assume myClassInstance is an instance of MyClass



              JSON json
          = new JSON();



              json
          .registerJSONifier(MyClass.class, new MyJSONifier());







             
          String output = json.forValue( myClassInstance);

          svenson 官方網(wǎng)址:http://code.google.com/p/svenson/

          posted on 2009-04-15 16:48 風(fēng)人園 閱讀(763) 評論(0)  編輯  收藏 所屬分類: Open Source

          主站蜘蛛池模板: 宁波市| 西和县| 沁源县| 香港| 天津市| 金沙县| 海城市| 五河县| 常熟市| 东乡族自治县| 安图县| 仁寿县| 凤阳县| 隆回县| 吐鲁番市| 桐柏县| 定陶县| 卢龙县| 江山市| 磐安县| 金山区| 阿尔山市| 武宁县| 洛宁县| 长丰县| 买车| 灌云县| 沙洋县| 宜丰县| 抚顺市| 云浮市| 咸阳市| 郑州市| 读书| 青岛市| 涿鹿县| 新建县| 桑日县| 棋牌| 和政县| 陵川县|