転載: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オブジェクトを作成するかどうか
一般的な方法は次のとおりです.
JSOnObjectの使い方
ディレクトリ(?)[-]
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 :
A 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