転載:JSOnObjectの使い方

21301 ワード

“`
JSOnObjectの使い方
ディレクトリ(?)[-]
  • JSOnObject紹介
  • jarパッケージのダウンロード
  • プロジェクト環境
  • classmethod 11ベースのAPI
  • XMLとJSON文字列の各列の簡単な例
  • start
  • result

  • 1.JSOnObject紹介
    JSONObject-libパッケージはbeans,collections,maps,Java arraysとxmlとJSONが互いに変換するパッケージです.
    2.jarパッケージのダウンロード
    http://files.cnblogs.com/java-pan/lib.rar
    JSOnObjectのjar以外に依存する6つのjarパッケージを提供し、合計7つのjarファイルを提供します.
    説明:作業中のプロジェクトで使用するバージョンは1.1の対応jdk 1であるため.3のバージョンなので、このブログは1.1バージョンに基づいて紹介されています.
    このバージョンに対応するjavadocのダウンロードパスは次のとおりです.http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/
    現在の最新バージョンは2.4で、その他のバージョンのダウンロードアドレスはhttp://sourceforge.net/projects/json-lib/files/json-lib/
    3.プロジェクト環境:
    System:WIN 7 myeclipse:6.5 tomcat:5.0 JDK:開発環境もコンパイル用も1.5
    プロジェクトの構造は次のとおりです.
    説明:今回使用したファイルはプロジェクトディレクトリjsonパッケージのJSONObject_のみ1_3種類とnote.txt
    4.class&method 1.1ベースのAPI
    以下の約束をします.
    1.JSOnObject 1.1に基づくAPIの紹介
    2.よく使われるクラスと方法のみを紹介する
    3.このリリースでは使用を推奨していません
    4.紹介するクラスと方法は主にこのブログで使われている
    JSONObject:A JSONObject is an unordered collection of name/value pairs.
    はfinalクラスで、Objectを継承して、JSONインタフェースを実現しました
    構築方法は次のとおりです.
    JSONObject();空のJSOnObjectオブジェクトを作成
    JSONObject(boolean isNull);空のJSOnObjectオブジェクトを作成するかどうか
    一般的な方法は次のとおりです.fromBean(Object bean); , pojo JSONObject fromJSONObject(JSONObject object); , JSONObject JSONObject fromJSONString(JSONString string); , JSONString JSONObject toString(); JSONObject json iterator(); Iterator put/get , get pot ,API :
    get  method returns a value if one can be found, and throws an exception if one cannot be found. An  opt  method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.
     
    JSONArray:A JSONArray is an ordered sequence of values.
    はfinalクラスで、Objectを して、JSONインタフェースを しました
    は のとおりです.JSONArray(); JSONArray
    な は のとおりです.fromArray(Object[] array); , Java JSONArray fromCollection(Collection collection); , collection JSONArray fromString(String string); , json JSONArray toString(); JSONArray json iterator(); Iterator put/get ……
     
    XMLSerializer:Utility class for transforming JSON to XML an back.
    Objectから されたクラス
    は のとおりです.XMLSerializer(); XMLSerializer
    な は のとおりです.setRootName(String rootName); xml setTypeHintsEnabled(boolean typeHintsEnabled); type write(JSON json); json xml, UTF-8, write(JSON json, String encoding)
     
    5.XMLとJSON の の な
    JSON:
    {「password」:“123456”,“username”:“ ”}
    xml
     
    123456

     
    start
    Webエンジニアリング、エンジニアリング jsを し、 の7つのjarパッケージをインポートし、ファイルを の でダウンロードします.
    :Webプロジェクトを する はなく、 のjavaプロジェクトでも の を できます.なぜjsonパッケージ の6つのパッケージをインポートするのかについては、note.txtは に ってありますが、ご の りです.
    question 1:バックグラウンドでフロントに したjson の はどのように しますか?
    1
    1 public static void jsonToJAVA() {
    2 System.out.println("json java ");
    3 String jsonStr = "{\"password\":\"123456\",\"username\":\" \"}";
    4 JSONObject jsonObj = JSONObject.fromString(jsonStr);
    5 String username = jsonObj.getString("username");
    6 String password = jsonObj.optString("password");
    7 System.out.println("json--->java
    username=" + username
    8 + "\t password=" + password);
    9 }


     
    question 2:バックグラウンドはどのようにjson の を み てますか?
    2
    1 public static void javaToJSON() {
    2 System.out.println("java json ");
    3 JSONObject jsonObj = new JSONObject();
    4 jsonObj.put("username", " ");
    5 jsonObj.put("password", "123456");
    6 System.out.println("java--->json
    " + jsonObj.toString());
    7 }


    question 3:json の はどのようにxml の に しますか?
    3
     1 public static void jsonToXML() {
    2 System.out.println("json xml ");
    3 String jsonStr = "{\"password\":\"123456\",\"username\":\" \"}";
    4 JSONObject json = JSONObject.fromString(jsonStr);
    5 XMLSerializer xmlSerializer = new XMLSerializer();
    6 xmlSerializer.setRootName("user_info");
    7 xmlSerializer.setTypeHintsEnabled(false);
    8 String xml = xmlSerializer.write(json);
    9 System.out.println("json--->xml
    " + xml);
    10 }


    question 4:xml の はどのようにjson の に しますか?
    4
    1 public static void xmlToJSON(){
    2 System.out.println("xml json ");
    3 String xml = "123456 ";
    4 JSON json=XMLSerializer.read(xml);
    5 System.out.println("xml--->json
    "+json.toString());
    6 }


    question 5:javabeanはどのようにjson に しますか?
    5
    1 public static void javaBeanToJSON() {
    2 System.out.println("javabean json ");
    3 UserInfo userInfo = new UserInfo();
    4 userInfo.setUsername(" ");
    5 userInfo.setPassword("123456");
    6 JSONObject json = JSONObject.fromBean(userInfo);
    7 System.out.println("javabean--->json
    " + json.toString());
    8 }


    question 6:javabeanはどのようにxml に しますか?
    6
     1 public static void javaBeanToXML() {
    2 System.out.println("javabean xml ");
    3 UserInfo userInfo = new UserInfo();
    4 userInfo.setUsername(" ");
    5 userInfo.setPassword("123456");
    6 JSONObject json = JSONObject.fromBean(userInfo);
    7 XMLSerializer xmlSerializer = new XMLSerializer();
    8 String xml = xmlSerializer.write(json, "UTF-8");
    9 System.out.println("javabean--->xml
    " + xml);
    10 }


     
    なJSONObject_1_3.javaコードは のとおりです.
    JSONObject_1_3
     1 package json;
    2
    3 import net.sf.json.JSON;
    4 import net.sf.json.JSONObject;
    5 import net.sf.json.xml.XMLSerializer;
    6
    7 public class JSONObject_1_3 {
    8 public static void javaToJSON() {
    9 System.out.println("java json ");
    10 JSONObject jsonObj = new JSONObject();
    11 jsonObj.put("username", " ");
    12 jsonObj.put("password", "123456");
    13 System.out.println("java--->json
    " + jsonObj.toString());
    14 }
    15
    16 public static void jsonToJAVA() {
    17 System.out.println("json java ");
    18 String jsonStr = "{\"password\":\"123456\",\"username\":\" \"}";
    19 JSONObject jsonObj = JSONObject.fromString(jsonStr);
    20 String username = jsonObj.getString("username");
    21 String password = jsonObj.optString("password");
    22 System.out.println("json--->java
    username=" + username
    23 + "\t password=" + password);
    24 }
    25
    26 public static void jsonToXML() {
    27 System.out.println("json xml ");
    28 String jsonStr = "{\"password\":\"123456\",\"username\":\" \"}";
    29 JSONObject json = JSONObject.fromString(jsonStr);
    30 XMLSerializer xmlSerializer = new XMLSerializer();
    31 xmlSerializer.setRootName("user_info");
    32 xmlSerializer.setTypeHintsEnabled(false);
    33 String xml = xmlSerializer.write(json);
    34 System.out.println("json--->xml
    " + xml);
    35 }
    36
    37 public static void javaBeanToJSON() {
    38 System.out.println("javabean json ");
    39 UserInfo userInfo = new UserInfo();
    40 userInfo.setUsername(" ");
    41 userInfo.setPassword("123456");
    42 JSONObject json = JSONObject.fromBean(userInfo);
    43 System.out.println("javabean--->json
    " + json.toString());
    44 }
    45
    46 public static void javaBeanToXML() {
    47 System.out.println("javabean xml ");
    48 UserInfo userInfo = new UserInfo();
    49 userInfo.setUsername(" ");
    50 userInfo.setPassword("123456");
    51 JSONObject json = JSONObject.fromBean(userInfo);
    52 XMLSerializer xmlSerializer = new XMLSerializer();
    53 String xml = xmlSerializer.write(json, "UTF-8");
    54 System.out.println("javabean--->xml
    " + xml);
    55 }
    56
    57 public static void xmlToJSON(){
    58 System.out.println("xml json ");
    59 String xml = "123456 ";
    60 JSON json=XMLSerializer.read(xml);
    61 System.out.println("xml--->json
    "+json.toString());
    62 }
    63
    64 public static void main(String args[]) {
    65 // javaToJSON();
    66 // jsonToJAVA();
    67 // jsonToXML();
    68 // javaBeanToJSON();
    69 // javaBeanToXML();
    70 xmlToJSON();
    71 }
    72 }


    なUserInfoJAvaコードは のとおりです.
    UserInfo
     1 package json;
    2
    3 public class UserInfo {
    4 public String username;
    5 public String password;
    6 public String getUsername() {
    7 return username;
    8 }
    9 public void setUsername(String username) {
    10 this.username = username;
    11 }
    12 public String getPassword() {
    13 return password;
    14 }
    15 public void setPassword(String password) {
    16 this.password = password;
    17 }
    18
    19 }


     
    result
    コードと はすでに の ろに られており、 にmainメソッドで メソッドをそれぞれ するとテスト が されます.
    note.txtは の するエラーと であり、 に べたjarパッケージをインポートする がある も の から する.
    note.txtファイルの は の りです.
    java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException  at java.lang.ClassLoader.defineClass0(Native Method)  at java.lang.ClassLoader.defineClass(ClassLoader.java:537)  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)  at java.NET.URLClassLoader.defineClass(URLClassLoader.java:251)  at java.net.URLClassLoader.access$100(URLClassLoader.java:55)  at java.Net.URLClassLoader 1.run(URLClassLoader.java:194)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:187)atjava.lang.ClassLoader.loadClass(ClassLoader.java:289)atsun.misc.Launcher AppClassLoader.loadClass(Launcher.java:274)  at java.lang.ClassLoader.loadClass(ClassLoader.java:235)  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)  at generate.TestJSONObject.main(TestJSONObject.java:40)Exception in thread「main」ソリューション:commons-lang-2.1をインポートjar
    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory  at net.sf.json.JSONObject.(JSONObject.java:125)  at generate.TestJSONObject.main(TestJSONObject.java:40)Exception in thread"main"ソリューション:commons-loggingをインポートする.jar
    java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean  at net.sf.json.JSONObject.set(JSONObject.java:2164)  at net.sf.json.JSONObject.put(JSONObject.java:1853)  at net.sf.json.JSONObject.put(JSONObject.java:1806)  at generate.TestJSONObject.main(TestJSONObject.java:41)Exception in thread"main"ソリューション:commons-beanutilsをインポートする.jar
    java.lang.NoClassDefFoundError: net/sf/ezmorph/MorpherRegistry  at net.sf.json.util.JSONUtils.(JSONUtils.java:65)  at net.sf.json.JSONObject.set(JSONObject.java:2164)  at net.sf.json.JSONObject.put(JSONObject.java:1853)  at net.sf.json.JSONObject.put(JSONObject.java:1806)  at generate.TestJSONObject.main(TestJSONObject.java:41)Exception in thread「main」ソリューション:ezmorph-1.0.2をインポートjar
    java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap  at org.apache.commons.beanutils.PropertyUtils.(PropertyUtils.java:208)  at net.sf.json.JSONObject.fromBean(JSONObject.java:190)  at net.sf.json.JSONObject.fromObject(JSONObject.java:437)  at net.sf.json.JSONObject.set(JSONObject.java:2196)  at net.sf.json.JSONObject.put(JSONObject.java:1853)  at net.sf.json.JSONObject.put(JSONObject.java:1806)  at generate.TestJSONObject.main(TestJSONObject.java:41)Exception in thread"main"ソリューション:commons-collections-3.0をインポートする.jar
    Exception in thread “main” java.lang.NoClassDefFoundError: nu/xom/Serializer  at generate.TestJSONObject.jsonToXML(TestJSONObject.java:88)  at generate.TestJSONObject.main(TestJSONObject.java:96)ソリューション:xom-1.0 d 10をインポートする.jar
     
    いくつかの :
    1.UserInfoクラスの に し、publicで し、 usernameとpasswordもpublicで し、 でクラスを いたほうがいい.ここでは らない
    2. のjson とxml はいずれも も な であり、 の ではjson とxmlフォーマットはこれよりずっと である.
    なjson を し、クラス HashMapをカプセル して き え、そのputメソッドとgetメソッドを き えて、タイプA[0]をサポートすることができる.B びA.Bのキー の み し び
    3. の6つのケースは、 の では しないものやよく われないものがあるかもしれません
     
    :
    1.XMLSerializerのwriteメソッドを して されたxml の けし
    2.question 4の いlogログの
    2012-4-6 15:04:35 net.sf.json.xml.XMLSerializer getType :Using default type string
    テキストリンク:http://www.cnblogs.com/java-pan/archive/2012/04/07/JSONObject.html